我有一个带拖放功能的树视图。完成拖放后,我需要找到新父节点的子节点的计数。所以我正在使用以下内容 线
var childnodelength=elem.parentNode.parentNode.childNodes.length;
alert(childnodelength);
但是我总是得到相同的4值,不管是不是。孩子们,有上述警报。 我也尝试过以下方式。
alert(elem.getElementsByTagName("A")[0].childNodes.length);
以上线总是给我1,不管是否。孩子们我不确定我是否在两种方式中都正确引用。
因此我无法找到否。子节点。
请有人帮我这个吗?
由于
答案 0 :(得分:1)
请注意,childNodes
只会向下看一级,所以只要你拥有相同数量的直接孩子,价值就会相同。也许你想要的是把所有孩子一直算在树上?
如果您想要所有子元素,可以使用getElementsByTagName("*")
。请注意,使用"*"
参数在IE5.5中不起作用,这可能会在以怪异模式运行时为更新版本的IE带来麻烦。
关于childNodes.length
的另一个好处是它可能会在IE中返回与其他浏览器不同的值,因为计算文本节点的方式不同。 。 。如果要排除文本节点并且只计算元素,则可以遍历childNodes并检查nodeType的值(1 = ELEMENT_NODE,2 = ATTRIBUTE_NODE,3 = TEXT_NODE等)您也可以使用children
代替childNodes
如果你只想要元素节点,但在IE中,这会错误地计算注释节点,而在Firefox中,直到版本3.5才支持它。
答案 1 :(得分:0)
子节点可能是DIV
或Table
,它包装了您需要计算的节点吗?