寻找更快或更好的方法来使用jquery选择XML节点的第n个子节点

时间:2011-08-04 15:23:59

标签: javascript jquery xml css-selectors

这是我的代码:

var CDs=$(xml).find("CDs");
var NthChild = $(CDs).find("CD:nth-child(index)"); // nth-child 0th element starts at 1

我在这里使用find方法;我必须指定子节点名称,标记为“CD”。是否有更快或更短的方法,也许不需要我指定子节点的名称(即“CD”)来找到第n个子节点?

谢谢。

更新

我找到了一种不需要按名称指定子节点的格式:

var NthChild = $(CDs).children(":nth-child(index)");

2 个答案:

答案 0 :(得分:4)

$(xml).find("CDs CD").eq(index);

根据jQuery docs

  

因为:eq()是一个jQuery扩展而不是CSS的一部分   规范,查询使用:eq()无法利用   本机DOM querySelectorAll()提供的性能提升   方法。要在现代浏览器中获得更好的性能,请使   $(“your-pure-css-selector”)。eq(index)代替。

答案 1 :(得分:2)

$(xml).find("CDs CD:eq(0)")

将所需的索引放在eq

之后的parens中

或者,如果CD元素仅存在于CDs下,并且您并不担心错误的元素:

$(xml).find("CD:eq(0)")