【问题标题】:Using next() x number of times with jQuery使用 jQuery 使用 next() x 次数
【发布时间】:2011-12-03 06:26:33
【问题描述】:

使用next()(每次应用相同的函数)迭代 x 次的简单方法是什么?

我在 Sharepoint 工作,对 HTML 的控制有限;我能做的是通过它的 ID 找到一个元素,找到最接近的 <td>hide(),然后继续下一个(我不想要所有的 <td>,大约 7或连续 8 个)。

下面的代码有效,但不是那么漂亮。

$("#my-easily-identifiable-id").closest("td").hide();
$("#my-easily-identifiable-id").closest("td").next().hide();
$("#my-easily-identifiable-id").closest("td").next().next().hide();
$("#my-easily-identifiable-id").closest("td").next().next().next().hide();
[ ... etc ... ]

有什么更好的方法来做到这一点?

谢谢

PS:加了fiddle(天才)

【问题讨论】:

  • 您能否发布一些可以处理的示例 html(在小提琴中)?
  • @MichaelHaren 我离开太久了——我什至不知道小提琴!这是惊人的。发布并更新了我的帖子。

标签: javascript jquery iterator next


【解决方案1】:

使用.nextAll() + .andSelf().slice()

$("#my-easily-identifiable-id").closest("td").nextAll().andSelf().slice(0, 7);

【讨论】:

    【解决方案2】:

    我认为比目前发布的更简单的解决方案是.nextUntil()

    //to get next 8 elements
    var i = $('#my-easily-identifiable-id').index();
    $('#my-easily-identifiable-id').closest('td').nextUntil('', ':lt(' + (i+8) + ')');
    
    //to get self and next 3
    var i = $('#my-easily-identifiable-id').index();
    $('#my-easily-identifiable-id').closest('td').nextUntil('', ':lt(' + (i+3) + ')').andSelf();
    

    抓取所有“下一个”元素,直到过滤器被命中(在这种情况下,我们选择接下来的 8 个元素)。由jsFiddle验证。

    【讨论】:

    • 所涉及的方法肯定更少,但我不确定我是否会称之为更简单。无论如何都要 +1
    • 与其他一些答案类似,您不包括原始代码所在的当前元素。另外,可能是因为小提琴,您没有像原来那样使用closest("td")
    • @James,第二个示例确实包含当前元素(请参阅.andSelf()),并且此技术将适用于选定元素,或者最接近的“td”或任何其他选定元素;更新了帖子
    【解决方案3】:

    我没有尝试过,但也许以下方法可能有效(我会暂时测试):

    $("#my-easily-identifiable-id").siblings().slice($(this).index(),($(this).index() + 8)).hide();
    

    使用JS Fiddle demo 进行测试和验证。

    【讨论】:

    • .slice 是几乎从未使用过的 jQuery 函数之一,但在您需要时非常有用。
    • 您丢失了.closest("td"),还需要包含原始td,而不仅仅是它的兄弟。
    【解决方案4】:

    可能是这样的:

    $("#my-easily-identifiable-id").closest("td").hide();
    $("#my-easily-identifiable-id").closest("td").nextAll().hide();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 2013-04-25
      • 1970-01-01
      相关资源
      最近更新 更多