2011-08-04 54 views
2

這裏選擇XML節點的第n個孩子是我的代碼:尋找更快,更好的方法使用jQuery

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

我在這裏使用find方法;我必須指定子節點名稱,它被標記爲「CD」。有沒有更快或更短的方法,也許不需要我指定子節點的名稱(即「CD」)來查找第n個子節點?

謝謝。

UPDATE

我發現,不需要按名稱指定的子節點的格式:

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

您還可以使用比CSS選擇器/ jQuery更快更強大的XPath表達式來遍歷XMLDocument。 – Saxoier

+0

謝謝。是的,這是我在jQuery之前如何考慮代碼的。但是,我試圖最大限度地提高瀏覽器兼容性。不過,我想並不是每一行代碼都必須重構成一個jQuery的等價物。 – user717236

回答

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

根據jQuery docs

因爲:EQ()是一個jQuery的擴展,而不是CSS 規範的一部分,使用查詢:EQ()無法利用本機DOM querySelectorAll() 方法提供的性能提升 。爲了在現代瀏覽器中獲得更好的性能,請使用 $(「your-pure-css-selector」)。eq(index)。

+1

良好的通話,我還沒有讀過。 – JAAulde

+0

謝謝。這是非常有用的信息。謝謝! – user717236

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

把期望指數括號內以下eq

或者,如果CD元素只能在CDs之下生效,而且您不屬於我rried有關獲取那些錯誤的:

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

非常感謝!優秀。 – user717236

相關問題