2017-12-27 507 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"); 
});