我需要使用jQuery向多个对象添加单个类名。
我知道要向这样的多个选择器添加一个类:
$("#Div4 ,#Div5 ,#Div7 ,#Div8").addClass("something");
我尝试了以下代码,但它仅将类应用于第一个对象。
$(a[i].source, a[i].canvas, a[i].target).addClass("something");
在上述情况下,类名something
仅适用于a[i].source
有想法吗?
答案 0 :(得分:4)
假设a[i].source
等实际上引用了节点/元素,则可以使用.add()
to add them individually to a collection,即:
$(a[i].source).add(a[i].canvas).add(a[i].target).addClass('something');
这可能是不必要的冗长。您可以简单地构造一个数组并依靠jQuery(credit to @Rory)中的隐式迭代:
$([a[i].source, a[i].canvas, a[i].target]).addClass('something');
但是,这并不是真正需要的。仅使用本机JS怎么办?截至今天,Array.prototype.forEach()
和Element.classList
得到了广泛的支持:
ES6:
[a[i].source, a[i].canvas, a[i].target].forEach(el => el.classList.add('something'));
ES5 (如果您需要与不支持ES6语法的旧浏览器向后兼容)
[a[i].source, a[i].canvas, a[i].target].forEach(function(el) {
el.classList.add('something');
});
答案 1 :(得分:0)
与其试图通过id来获取它们,不如将一个默认类添加到您需要获取的元素中。
<div class="selectorClass"></div>
<span class="selectorClass"></span>
然后 使用jQuery
$(".selectorClass").addClass("something")