代码之家  ›  专栏  ›  技术社区  ›  Allan Jebaraj

将同一类添加到多个对象

  •  1
  • Allan Jebaraj  · 技术社区  · 7 年前

    我知道向多个选择器添加一个类,如下所示:

    $("#Div4 ,#Div5 ,#Div7 ,#Div8").addClass("something");
    

    我尝试了以下代码,但它只将类应用于第一个对象。

    $(a[i].source, a[i].canvas, a[i].target).addClass("something");
    

    something 仅适用于 a[i].source

    2 回复  |  直到 7 年前
        1
  •  4
  •   Terry    7 年前

    假设 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');
    

    Array.prototype.forEach() Element.classList 到今天为止,得到了非常广泛的支持:

    ES6:

    [a[i].source, a[i].canvas, a[i].target].forEach(el => el.classList.add('something'));
    

    (如果您需要向后兼容 古老的

    [a[i].source, a[i].canvas, a[i].target].forEach(function(el) {
        el.classList.add('something');
    });
    
        2
  •  0
  •   Heshan    7 年前

    <div class="selectorClass"></div>
    <span class="selectorClass"></span>
    

    然后 使用jquery

    $(".selectorClass").addClass("something")