Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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 nextSibling是注释时Firefox中的奇怪行为_Javascript_Firefox_Dom - Fatal编程技术网

Javascript nextSibling是注释时Firefox中的奇怪行为

Javascript nextSibling是注释时Firefox中的奇怪行为,javascript,firefox,dom,Javascript,Firefox,Dom,我正在将nextSiblings推入while循环中的数组。我知道Firefox与IE的不同之处在于它接收下一个标签的方式,它将空格和回车视为节点。但是,当它拾取常规html注释时,它会进入一个无限循环,就像有无限的下一个sibling节点是注释一样。解决方案很简单,在我弄清楚发生了什么之后,只需检查节点类型,如果是注释,则不将其推送到数组中,但我真的很好奇是否有其他人经历过这种情况,以及为什么会发生这种情况?谢谢。请记录:从xml/xslt的角度来看,您在第二句中描述的差异是IE中奇怪和意外的

我正在将nextSiblings推入while循环中的数组。我知道Firefox与IE的不同之处在于它接收下一个标签的方式,它将空格和回车视为节点。但是,当它拾取常规html注释时,它会进入一个无限循环,就像有无限的下一个sibling节点是注释一样。解决方案很简单,在我弄清楚发生了什么之后,只需检查节点类型,如果是注释,则不将其推送到数组中,但我真的很好奇是否有其他人经历过这种情况,以及为什么会发生这种情况?谢谢。

请记录:从xml/xslt的角度来看,您在第二句中描述的差异是IE中奇怪和意外的行为。我支持Ken的请求,举个例子。导致问题的while循环如下所示,while thisNode.nextSibling&&thisNode.nextSibling.nodeName!==ThisNodeName{console.logthisNode.nextSibling.nodeType++thisNode.nextSibling;elementarray.append$thisNode.nextSibling;}基本上抓取第一个节点并存储所有内容,直到找到另一个同名节点,因此,如果标记如下所示:标题内容标题我的内容标题2内容标题2我的内容2内容标题和我的内容将存储在elementarray中。但是如果我在标记中有注释,我在控制台中看到的是8[object comment],因此FF将注释节点名称返回为8,但它只是进入一个无限循环,浏览器会抛出一个错误,说脚本太慢。您的while循环没有迭代。此节点始终引用同一个节点,从不更改。