如何动态地将类添加到div

时间:2014-02-21 22:57:47

标签: jquery

请你看一下this demo,让我知道如何动态地将css类添加到与列表项具有相同id的div中,在这种情况下,我想添加{{1}与list关联的每个div的类。              一         二         三         四          
                           

到目前为止我有这个jquery:

added

4 个答案:

答案 0 :(得分:2)

ID必须是唯一的,因此您应该为li和div项目使用不同的ID,例如:

HTML:

<ul class="list-inline">
    <li id="one">one</li>
    <li id="two">two</li>
    <li id="three">three</li>
    <li id="four">four</li>
</ul>
<br />
<div class="box" id="box-one"></div>
<div class="box" id="box-two"></div>
<div class="box" id="box-three"></div>
<div class="box" id="box-four"></div>

JQuery的:

$( document ).ready(function() {
  $("li").click(function(){
    var id = $(this).attr('id'); 
    // If you want the class at one element only:
    $(".box").removeClass("added");
    $("#box-" + id).addClass("added");
  });
});

在这里工作Jsfiddle:http://jsfiddle.net/fgVGj/5/

答案 1 :(得分:0)

你做不到。 ID必须在页面上是唯一的。

答案 2 :(得分:0)

要解决您的问题,这将有效

$(document).ready(function () { $("li").on("click", function () { var item = $(this).attr('id'); $(".box").attr('id', item); }); });

您将新的attr作为第二个参数传递给.attr(),但是如前所述,应该使用类或数据属性,因为ID是唯一的。

答案 3 :(得分:0)

我认为这正是您所寻找的:http://jsfiddle.net/uHP7B/1/

$( document ).ready(function() {

    // cache box list
    var boxes = $(".box");

  $("li").on("click",function(){

      // get list item id
      var item_id = $(this).attr('id'); 

      // check list of boxes for a mattch
      for(var i = 0; i < boxes.length; i += 1){

          // we got a match!
          if( boxes[i].id == item_id){

              alert("match is div containing '" + boxes[i].innerHTML + "'");
          }
      }
  });
});