【问题标题】:jQuery Each, Iterate from starting element? [duplicate]jQuery Each,从起始元素迭代? [复制]
【发布时间】:2023-04-04 12:57:02
【问题描述】:

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

例如如果我想将“项目二”上方的项目设为红色。 (我知道每个循环不需要这样做,这只是一个示例)

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

【问题讨论】:

  • @Andreas:我发现的骗子也是这么说的。对该评论 +1 :-)
  • @cebrus 在这种情况下,下面建议的 GT 选择器对我来说比 slice 效果更好。我在搜索中没有看到您的建议(可能问错了问题)。在这种情况下问“重复”问题的礼仪是什么???我仍然接受答案吗?
  • @Cerbrus 不知道这是骗子,删除了答案,因为我看到gt 用于如此骗子的答案
  • @Novocent 使用$('li:gt(1)')

标签: javascript jquery


【解决方案1】:

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

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

【讨论】:

  • 你在JS中有一个金徽章,下次请以骗子身份关闭而不是回答......
【解决方案2】:

您可以使用.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>

【讨论】:

    【解决方案3】:

    可以按如下方式完成

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

    【讨论】:

      猜你喜欢
      • 2010-12-14
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 2018-02-23
      • 2021-03-03
      相关资源
      最近更新 更多