资料来源:javascript高级程序设计第三版
首先,别想太多,这个是dom2的操作,跟node没有太大的关系,其次
之前看到一片博客说这个兄弟遍历起来比较慢,我也不太清楚,所以希望大家是慎用。
简单来说,NodeIterator就是一个遍历器,解释也不多,就四个参数
先上代码吧:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="div1">
<div class="div2"></div>
<span class="span2"></span>
</div>
</body>
<script>
var root = document.querySelector(".div1");
var iterator = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, false);
var node = iterator.nextNode();
while(node) {
console.log(node);
node = iterator.nextNode();
}
</script>
</html>
第一个参数:root,就是我们要操作的节点,
第二个的话是选择我们的类别,枚举:
(方便点,我的代码就依第一个来操作的,注意最后两行)
第三个的话是一个过滤器,
在我那份代码的基础上改动的话。是这样的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="div1">
<div class="div2"></div>
<span class="span2"></span>
</div>
</body>
<script>
var myfilter = function(node) {
console.log("aaa");
}
var root = document.querySelector(".div1");
var iterator = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, function(mynode) {
if(mynode.className == "div2") {
console.log("发现了一个class是div2的dom元素")
} else {
console.log("改元素不是class是div2的dom元素")
}
}, false);
var node = iterator.nextNode();
while(node) {
node = iterator.nextNode();
}
</script>
</html>
最后的一个:
不知道啥情况使用它。。。求告知。。。