Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript childNodes.length属性与elem一起使用时出现问题_Javascript_Dom - Fatal编程技术网

将javascript childNodes.length属性与elem一起使用时出现问题

将javascript childNodes.length属性与elem一起使用时出现问题,javascript,dom,Javascript,Dom,我有一个具有拖放功能的树状视图。完成拖放后,我需要找到新父节点的子节点数。因此,我使用以下方法 线条 但我总是得到相同的值4,不管孩子的数量如何,与上述警报相同。 我也尝试过以下方法 alert(elem.getElementsByTagName("A")[0].childNodes.length); 不管孩子的数量如何,上面这一行总是给我1。我不确定这两种说法是否正确 因此我无法找到子节点的数量 有人能帮我吗 谢谢也许子节点是一个DIV或表,它封装了需要计数的节点?也许子节点是一个DIV或表

我有一个具有拖放功能的树状视图。完成拖放后,我需要找到新父节点的子节点数。因此,我使用以下方法 线条

但我总是得到相同的值4,不管孩子的数量如何,与上述警报相同。 我也尝试过以下方法

alert(elem.getElementsByTagName("A")[0].childNodes.length);
不管孩子的数量如何,上面这一行总是给我1。我不确定这两种说法是否正确

因此我无法找到子节点的数量

有人能帮我吗


谢谢

也许子节点是一个
DIV
,它封装了需要计数的节点?

也许子节点是一个
DIV
,它封装了需要计数的节点?

请记住
子节点
只向下看一级,因此,只要您有相同数量的直接子对象,该值将是相同的。也许你想数一数树下所有的孩子

如果需要所有子元素,可以使用
getElementsByTagName(“*”)
。请注意,
“*”
参数的使用在IE5.5中不起作用,这也可能会给更新版本的IE在怪癖模式下运行带来麻烦


关于
childNodes.length
另一个好消息是,它在IE中返回的值可能与其他浏览器不同,因为计算文本节点的方法不同。如果要排除文本节点并仅计算元素,则可以在子节点之间循环并检查节点类型的值(1=元素节点,2=属性节点,3=文本节点等)。如果只需要元素节点,但在IE中不正确地计算注释节点,则也可以使用
子节点
而不是
子节点
,在Firefox中,直到3.5版才支持它

请记住,
childNodes
只向下看一级,因此只要您有相同数量的直接子节点,该值将是相同的。也许你想数一数树下所有的孩子

如果需要所有子元素,可以使用
getElementsByTagName(“*”)
。请注意,
“*”
参数的使用在IE5.5中不起作用,这也可能会给更新版本的IE在怪癖模式下运行带来麻烦


关于
childNodes.length
另一个好消息是,它在IE中返回的值可能与其他浏览器不同,因为计算文本节点的方法不同。如果要排除文本节点并仅计算元素,则可以在子节点之间循环并检查节点类型的值(1=元素节点,2=属性节点,3=文本节点等)。如果只需要元素节点,但在IE中不正确地计算注释节点,则也可以使用
子节点
而不是
子节点
,在Firefox中,直到3.5版才支持它

treeview的HTML是什么样子的?你在Firebug中通过执行dir(elem)并深入到你想要的内容来了解这一点吗?添加示例HTML否则无法帮助你treeview的HTML是什么样子的?你在Firebug中通过执行dir(elem)来了解这一点吗然后深入到您想要的内容?添加示例HTML,否则帮助您是不可能的
alert(elem.getElementsByTagName("A")[0].childNodes.length);