我需要使用 jQuery 将单个类名添加到多个对象。
我知道像这样向多个选择器添加一个类:
$("#Div4 ,#Div5 ,#Div7 ,#Div8").addClass("something");
我尝试了以下代码,但它仅将类应用于第一个对象。
$(a[i].source, a[i].canvas, a[i].target).addClass("something");
在上述情况下,类名 something
仅应用于 a[i].source
想法?
最佳答案
假设 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');
});
关于javascript - 将相同的类添加到多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54532664/