jQuery每个,从起始元素迭代?

时间:2015-10-12 13:58:27

标签: javascript jquery

是否可以从某个元素而不是所有元素开始每个循环?

e.g。如果我想让“第二项”上面的项目变红。 (我知道每个循环都不需要这样做,这只是一个示例)

<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>

$('li').each(function(){
    $(this).css("color", "red");
});

3 个答案:

答案 0 :(得分:0)

您可以检查当前项目索引并跳过迭代:

$('li').each(function(){
  if( $( this ).index() < 2 ) return true;
  $(this).css("color", "red");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>

答案 1 :(得分:0)

您可以使用index函数的.each属性。

$('li').each(function(index) {
  if (index > 1) {
    $(this).css("color", "red");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
</ul>

答案 2 :(得分:0)

这可以按照以下方式完成

&#13;
&#13;
$(document).ready(function(){
var lis = $('ul').children();
console.log($(lis).length);
for(var i = 1; i < 3; i++)
  {
      
      $(lis[i]).css("color", "red");
  }

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>
&#13;
&#13;
&#13;