繁体   English   中英

获取所有元素的孩子?

[英]Getting ALL of element's children?

有没有办法返回所有元素“后代”,包括其孩子的孩子?

我敢肯定有一个简单的方法,但我能想到的只是递归.children

您可以使用getElementsByTagName并将“*”作为参数传递,例如:

var oDiv = document.getElementById("MyDiv");
var allChildrenDeep = oDiv.getElementsByTagName("*");

请注意,尽管对于具有许多子元素的顶级元素,它可以达到该数组中的数百个项目,因此请注意效率。

element.getElementsByTagName('*');

将返回比element更远的所有元素的实时列表。 示例用法:

function getSubtreeBelowElementById(id){
    return document.getElementById(id).getElementsByTagName('*');
}

请注意,这只会返回 HTML 节点,它将跳过评论节点和文本节点。

如果您的目标是模糊的新浏览器,那么您可以使用querySelectorAll

var c = document.getElementById('myElement');
var offspring = c.querySelectorAll('*');

编辑:不要使用这种方法。 浏览器支持不像getElementsByTagName那样普遍,也没有进行太多优化。 快速基准测试显示它慢了大约 5 倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM