javascript - 如何使用 jQuery 或 JavaScript 将属性更改为整个类的元素?

标签 javascript jquery

我想将一个属性更改为许多具有相同类的元素。

我有很多带有“data-lc-categories= all”属性的“a”标签。

我想将该属性 (data-lc-categories) 更改为所有具有一类动画的 a 标签为 data-lc-categories = "animation"。

我的问题是,如果我尝试使用 id 选择元素,它会使用:

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>

最佳答案

普通 JS 版本不起作用,因为 getElementsByClassName() 返回一个 nodeList。因此,您不能对其调用 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") 

关于javascript - 如何使用 jQuery 或 JavaScript 将属性更改为整个类的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58696641/

相关文章:

javascript - Angular $watch 细微差别和工厂不反射(reflect)状态变化?

javascript - 如何在javascript中匹配2组数组并将其放入元素(div)中

javascript - 如何获取html标题元素

javascript - 将类分配给动态创建的 div

javascript - JQuery 的 DatePicker 自动选择工作日

javascript - 给定一个对象数组,计算定义了多少(可能不同的)属性

javascript - jquery/javascript - 达到最大附加数后自动删除附加元素

javascript - 搜索自定义日期选择器

javascript - 动画回调中的 jQuery 动画只工作一次

javascript - 迭代 td 中的每个输入字段