2017-12-27 1337 views
-1

我是新来的jquery,我不知道如何做一个条件循环。我想获得所有的div与相同的ID(是的,我知道ID应该是唯一的)和红色的边框颜色。由于只有第一个“#column3”被着色,因此它似乎没有进行循环。我希望当#column3存在时,我们添加班级焦点。jquery循环条件

<div id="div2"> 
    <div id="column1">1 
    <div class="price">400</div> 
    <span>hello</span> 
    <span>undefined</span> 
    </div> 
    <div id="column2">hello 
    </div> 
    <div id="column3">3 
    <div class="price">600</div> 
    <span>hello</span> 
    <span>undefined</span> 
    </div> 
</div> 
<div id="div2"> 
    <div id="column1">1 
    <div class="price">400</div> 
    <span>hello</span> 
    <span>undefined</span> 
    </div> 
    <div id="column2">hello 
    </div> 
</div> 

<div id="div2"> 
    <div id="column1">1 
    <div class="price">400</div> 
    <span>hello</span> 
    <span>undefined</span> 
    </div> 
    <div id="column2">hello 
    </div> 
    <div id="column3">3 
    <div class="price">600</div> 
    <span>hello</span> 
    <span>undefined</span> 
    </div> 
</div> 

我试过这样:

$("#div2 #column3").each(function (index) { 
     if ($("#div2 #column3").length) { 
      $("#column3").addClass("focus"); 
     } 
    }); 

这里是一个小提琴: https://jsfiddle.net/qm89a1cf/2/

+3

它是一个**非常糟糕的想法,有多个元素具有相同的ID。 –

+0

是的我知道这就是为什么我这样说。 ^^“但我必须处理它! – LovePoke

+0

如果幸运的话,它可以通过使用像div [id = div2] div [id = column3]这样的属性选择器来工作,但是你应该改变HTML。 –

回答

0

在每个你会得到两个参数第一个是指数,第二个要素是自我。

你可以在你的小提琴手中加入这段代码,它会起作用。

$("#div2 #column3").each(function (index,key) { 
     if ($("#div2 #column3").length) 
     { 
      $(key).addClass("focus"); //key is elemnt 
     } 
}); 
3

jQuery的。每个参数是接受几个参数的函数。如果你声明第二个,你可以访问该元素。然后给那个元素“焦点”类。

 $("#div2 #column3").each(function (index, element) { 
 
     element.classList.add("focus"); 
 
    }); 
 
.focus { 
 
border: 3px solid red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id = "div2"> 
 

 
<div id="column1">1 
 
    <div class="price">400</div> 
 
    <span>hello</span> 
 
    <span>undefined</span> 
 
</div> 
 
<div id="column2">hello 
 
</div> 
 
<div id="column3">3 
 
    <div class="price">600</div> 
 
    <span>hello</span> 
 
    <span>undefined</span> 
 
</div> 
 

 
</div> 
 
<div id = "div2"> 
 
<div id="column1">1 
 
    <div class="price">400</div> 
 
    <span>hello</span> 
 
    <span>undefined</span> 
 
</div> 
 
<div id="column2">hello 
 
</div> 
 
</div> 
 

 
<div id = "div2"> 
 
<div id="column1">1 
 
    <div class="price">400</div> 
 
    <span>hello</span> 
 
    <span>undefined</span> 
 
</div> 
 
<div id="column2">hello 
 
</div> 
 
<div id="column3">3 
 
    <div class="price">600</div> 
 
    <span>hello</span> 
 
    <span>undefined</span> 
 
</div> 
 
</div>

$("#div2 #column3").each(function (index, element) { 
    element.classList.add("focus"); 
});