每个,从开始元素迭代

jQuery Each, Iterate from starting element?

本文关键字:元素 迭代 开始 每个      更新时间:2023-09-26

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

。如果我想把"第二项"上面的项变成红色。(我知道没有必要用each循环来做这个,这只是一个例子)

<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");
});

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

$('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>

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

$('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>

可以这样做

$(document).ready(function(){
var lis = $('ul').children();
console.log($(lis).length);
for(var i = 1; i < 3; i++)
  {
      
      $(lis[i]).css("color", "red");
  }
});
<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>