獲取給定節點的直接子節點的所有[tag]節點列表的最簡單方法是什麼,而不使用查詢?通過給定元素childNode中的標記獲取元素
0
A
回答
2
隨着迭代,你可以檢查這樣的元素的標籤名稱:
var child = yourElement.children;
var childrensSpan = [];
for(var i = 0; i < child.length; i++){
if(child[i].tagName === "SPAN") childrensSpan.push(child[i])
}
console.log(childrensSpan);
小提琴:http://jsfiddle.net/Paesk/
當然,yourElement
是你的父元素和"SPAN"
是您正在搜索的標籤對於。
2
在現代瀏覽器...
var divs = [].filter.call(node.children, function(el) {
return el.nodeName === "DIV";
});
的Array.prototype.filter
方法可以在舊版瀏覽器進行修補。
如果你要爲不同類型的元素經常這樣做,你可能想通過創建過濾器回調函數縮短它。
function byTag(name) {
name = name.toUpperCase();
return function(el) {
return el.nodeName === name;
}
}
然後做到這一點:
var divs = [].filter.call(node.children, byTag("div"));
+1
真棒,謝謝! – AlexTR
0
基於答案在這裏我做了兩個功能和包裹他們入HTMLElement.prototype 這導致使用divChildren = node.childrenByTag("div");
後來我做的能力在這裏提供的兩種解決方案之間的一些基準比較,querySelector()
,getElementsByTagName()
,正則表達式和XPath
如果任何人有興趣,你可以在這裏找到它(功能+基準):http://jsfiddle.net/2CPwL/
相關問題
- 1. xml.dom.minidom通過標記名獲取元素
- 2. jquery - 在特定的div中通過標記獲取元素?
- 3. 通過ClientInstanceName獲取元素
- 4. 通過Id獲取元素
- 5. 通過標題獲取元素jQuery
- 6. 通過座標獲取元素?
- 7. 通過其他元素通過ID獲取HTML元素
- 8. 如何通過.get()獲取父元素一次獲取元素
- 9. 通過angularjs中的另一個元素獲取元素
- 10. 從父標記中獲取元素ID
- 11. 通過特定元素的標記獲取特定子元素的XSLT大問題
- 12. 通過JQuery獲取父元素的data-attribute中的目標元素名稱
- 13. 如何通過給定的元素名稱獲取pvob名稱?
- 14. 獲取元素的子標記名
- 15. 通過標記名稱與DOMDocument :: loadHTML和getElementsByTagName獲取DOM元素
- 16. 鈦合金:通過標記或類名獲取元素(節點)
- 17. jQuery通過角色標記獲取元素
- 18. 在jQuery中通過ID獲取元素
- 19. 在Ember中通過ID獲取元素
- 20. 通過標記名稱刪除元素
- 21. 通過類和ID獲取元素內的元素 - JavaScript
- 22. 如何通過JavaScript的元素名稱獲取子元素?
- 23. 從ClassName獲取的所有元素中獲取特定元素?
- 24. 通過javascript獲取元素的位置
- 25. 獲取通過AJAX加載的元素?
- 26. 通過.val元素與JavaScript和jquery獲取div元素
- 27. jQuery如何通過id獲取元素並刪除元素?
- 28. 通過javascript獲取當前元素下方1個元素
- 29. 通過xpath獲取具有給定文本值的輸入標籤元素
- 30. 獲取元素的座標
你可以請詳細說明「'不使用查詢」嗎? jQuery的?或者是其他東西? – Teemu
@Teemu - 假設OP意味着普通的香草JS。 – j08691
@Teemu我的意思是既不使用邊庫作爲jQuery,也不querySelector()函數 – AlexTR