मैं एक विशेषता को बहुत से तत्वों में बदलना चाहता हूं जिसमें सभी के पास एक ही कक्षा है।

मेरे पास "डेटा-एलसी-श्रेणियां = सभी" विशेषता वाले बहुत से "ए" टैग हैं।

मैं उस विशेषता (डेटा-एलसी-श्रेणियों) को सभी टैग में बदलना चाहता हूं जिसमें एनीमेशन की कक्षा के साथ डेटा-एलसी-श्रेणियां = "एनीमेशन" है।

मेरी समस्या यह है कि यदि मैं किसी आईडी का उपयोग करके तत्वों का चयन करने का प्रयास करता हूं तो यह निम्न का उपयोग करके काम करता है:

setAttribute('data-lc-categories', 'animation'); // javascript

या

$('#test1').attr({
    "data-lc-categories": "animation",
    "title": "some title"
}); // jQuery

लेकिन जब मैं साथ कोशिश करता हूँ

document.getElementsByClassName(".img_portfolio_animation")
 .setAttribute('data-lc-categories', 'animation');

या

$('.animation').attr("data-lc-categories": "animation") 

यह काम नहीं करता।

<div class="new_filter_btns_container">
    <ul>
         <li id="filter_All" class="filter_btn">All</li>
         <li id="filter_animations" class="filter_btn">Animations</li>
         <li id="filter_interior" class="filter_btn">Interior Renders</li>
    </ul>
</div>

<a id="test1" class="animation all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Animation</a>
<a class="animation all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Animation</a>
<a class="animation all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Animation</a>
<a class="animation all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Animation</a>
<a class="interior all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Interior</a>
<a class="interior all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Interior</a>
<a class="interior all"     href="" data-rel="lightcase:myCollection" data-lc-categories="All">Interior</a>
<a class="interior all" href="" data-rel="lightcase:myCollection" data-lc-categories="All">Interior</a>
1
Tudor Constantinescu 4 नवम्बर 2019, 18:39

1 उत्तर

सबसे बढ़िया उत्तर

सादा जेएस संस्करण काम नहीं करता क्योंकि getElementsByClassName() एक नोडलिस्ट देता है। इसलिए आप इस पर setAttribute() पर कॉल नहीं कर सकते। आपको तत्वों के माध्यम से व्यक्तिगत रूप से लूप करने की आवश्यकता है और उन पर विधि को एक-एक करके कॉल करें, ऐसा कुछ:

var elements = document.getElementsByClassName(".img_portfolio_animation");
for (var i = 0; i < elements.length; i++) {
  elements[i].setAttribute('data-lc-categories', 'animation');
}

JQuery संस्करण केवल इसलिए काम नहीं करता है क्योंकि आपको अल्पविराम से तर्कों को अलग करने की आवश्यकता है, न कि एक कोलन:

$('.animation').attr("data-lc-categories", "animation") 
2
Rory McCrossan 4 नवम्बर 2019, 18:43