【问题标题】:jQuery Selectors: Grabbing a section of children that are of a given tagjQuery选择器:抓取给定标签的一部分子项
【发布时间】:2011-04-23 19:03:15
【问题描述】:

假设我有给定元素(例如“tr”)的任意数量的子元素(例如“td”),我需要在给定位置(例如, 3; td 的 3 - 67,在这种情况下)。执行此操作的最佳查询是什么样的?

请注意,我可能要处理数以千计的孩子,所以我不想在例行的基础上对数以千计的数组进行切片。

编辑:它不必通过 jQuery,如果有更有效的选择直接进入 DOM...

【问题讨论】:

    标签: jquery html dom jquery-selectors


    【解决方案1】:

    您可以为此使用.slice(),例如:

    $("tr td").slice(2, 7)
    //of if you have the <tr>
    $(this).children("td").slice(2, 7)
    

    上面将获得第 3 到第 7 个 &lt;td&gt;,因为它是一个 基于 0 的索引。或者没有 jQuery 的版本,假设你有 &lt;tr&gt; DOM 元素:

    var tds = tr.getElementsByTagName("td");
    for(var i = 2; i<7; i++) {
      //do something
    }
    

    You can test both versions here.

    【讨论】:

    • @Hamster 你知道它不够快吗?你有简介吗?
    • 哦等等,这不是我们说的数组切片吗?
    • @Hamster - 是的,我也添加了一个非 jQuery 版本,以防你追求...我假设基于标签你在 jQuery 选择器版本之后。
    • 好吧,我所追求的是一种快速获取子集的方法,因为我正在处理潜在的数千个子元素(不一定是表列或行),我不想成为每次都重建数组以切片。
    • @Hamster - 你 必须 迭代它们以获得它们的一种或另一种方式,这就是 DOM 的本质,不确定如何为你提供更高效的比上面的方式。请记住,您正在创建 references 的数组(或节点列表),而不是元素的实际副本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多