JavaScript的createNodeIterator()方法报错

在遍历一个div节点时用了createNodeIterator()方法报错

css.html:9 Uncaught TypeError: Failed to execute 'createNodeIterator' on 'Document': parameter 1 is not of type 'Node'.

at css.html:9

代码是

<!DOCTYPE html>
<html>
<head>
    <title></title>
    
    <script type="text/javascript">
        var div = document.getElementById("div1");
        
        var iterator = document.createNodeIterator(div, NodeFilter.SHOW_ELEMENT, null, false);
        var node = iterator.nextNode();
        while(node !== null){
            alert(node.tagName)
            node = iterator.nextNode();
        }
        
        
    </script>
</head>
<body>
<div id="div1">
<p><b>Hello</b>World!!!</p>
    <ul>
        <li>Item1</li>
        <li>Item2</li>
        <li>Item3</li>
    </ul>

</div>


</div>
</body>
</html>

请指教
阅读 3.1k
1 个回答

应该是脚本执行的时候,还没有<div id="div1">
var div = document.getElementById("div1");获取到的其实是空值,
document.createNodeIterator的第一个参数是不能为空的。
把脚本放到尾部试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题