javascript - 将相同的类添加到多个对象

标签 javascript jquery html jsplumb

我需要使用 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/

相关文章:

javascript - 如果没有 hack,就不能在私有(private) JavaScript 函数中访问“this”对象吗?

javascript - 响应式 DIV 覆盖在 "background-size: contain"- 解决警报触发的问题

javascript - 无法放大 Google Charts

javascript - 如何将 FileReader base64 分配给变量?

javascript - 立即输出所有表单填写错误的消息

动态表中按钮的 Jquery 单击事件不起作用

javascript - 多个 div 依次自动滚动,并具有固定的标题/页眉

html - CHtmlview (MFC) 中的 svg

javascript - 如何使 AngularJS Materials 下拉菜单更加可见?

html - 各种尺寸和 img 响应的图像 - 如何设置响应式 div?