【问题标题】:How to addClass or set multiple CSS properties to multiple elements which has variables?如何为具有变量的多个元素添加类或设置多个 CSS 属性?
【发布时间】:2017-04-26 12:49:28
【问题描述】:

如何向分配有变量的多个元素(id)添加类或 css 属性。如果我直接使用$('#cc, #dd').addClass('blue'),则该代码有效,但如果它具有分配给 id 的变量,例如$(cc, dd).addClass('blue'),则该代码无效。请检查下面的代码,注释行有效,但如果它有变量则无效。

$(document).ready(function() {
    var cc = $("#cc"),
        dd = $("#dd");
    $("button").click(function() {
        // $("#cc, #dd").addClass("blue");
        $(cc, dd).addClass("blue");
        $(cc, dd).css({
            "color": "#2196f3",
            "font-size": "30px"
        });
        $("h1, h2, p").addClass("blue");
    });
});
.blue {
  color: #2196f3;
  font-size: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
   
<div id="cc">hello 1</div>
<div id="dd">hello 2</div>

<h1>Heading 1</h1>
<h2>Heading 2</h2>
<p>This is a paragraph.</p>

<button>Add classes to elements</button>

【问题讨论】:

标签: jquery html css


【解决方案1】:

使用add() 将 dd 元素添加到 cc 集合中,现在您正在尝试在 dd 元素中查找 cc 元素,请参阅selector context

var cc = $("#cc"),
    dd = $("#dd");
$(cc).add(dd).addClass("blue");
.blue {
  background:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="cc"></button>
<button id="dd"></button>

【讨论】:

  • 非常感谢,完美运行!
【解决方案2】:

$(document).ready(function() {
  var cc = $("#cc"),
      dd = $("#dd");
  $("button").click(function() {
      // $("#cc, #dd").addClass("blue");
      dd.addClass("blue");
      cc.addClass("blue");
      $(cc, dd).css({
          "color": "#2196f3",
          "font-size": "30px"
      });
      //$("h1, h2, p").addClass("blue");
  });
});
.blue {
    color: #2196f3;
    font-size: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  
<div id="cc">hello 1</div>
<div id="dd">hello 2</div>

<h1>Heading 1</h1>
<h2>Heading 2</h2>
<p>This is a paragraph.</p>

<button>Add classes to elements</button>

【讨论】:

    【解决方案3】:

    您可以使用数组并加入:

    var arrSelectors = ["#cc", "#dd", ".someOtherSelector"];
    
    $(arrSelectors.join).addClass("blue");
    

    【讨论】:

    • 它们不是字符串,它们是 jquery 对象,所以这应该不起作用
    • @madalinivascu 正确,系统中没有足够的咖啡...修改我对替代方法的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2016-10-05
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多