js node 节点 原生遍历 createNodeIterator
Posted cbugs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js node 节点 原生遍历 createNodeIterator相关的知识,希望对你有一定的参考价值。
1、createIterator
msn:
https://developer.mozilla.org/en-US/docs/Web/API/Document/createNodeIterator
var filter = function(node)
return node.tagName.toLowerCase() == ‘p‘ ? NodeFilter.FILTER_ACCEPT: NodeFilter.FILTER_REJECT; var iterator = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, filter, false); var node = iterator.nextNode(); while(node !== null) console.log( node.tagName );
// node 的属性 与方法 详见 2 nodeFilter node = iterator.nextNode(); ———————————————— 基于此,可以简单的做为 web node 节点的数据 采集
1、nodeFilter
msn:
https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter
var nodeIterator = document.createNodeIterator( // Node to use as root document.getElementById(‘someId‘), // Only consider nodes that are text nodes (nodeType 3) NodeFilter.SHOW_TEXT, // Object containing the function to use for the acceptNode method // of the NodeFilter acceptNode: function(node) // Logic to determine whether to accept, reject or skip node // In this case, only accept nodes that have content // other than whitespace if ( ! /^\s*$/.test(node.data) ) return NodeFilter.FILTER_ACCEPT; , false ); // Show the content of every non-empty text node that is a child of root var node; while ((node = nodeIterator.nextNode())) alert(node.data);
3、element
msn: https://developer.mozilla.org/zh-CN/docs/Web/API/Element
while(node !== null) console.log( node.tagName ); //node.tagName 等于 element.tagName // element 的属性 与方法 详见 3、 node = iterator.nextNode();
sfd
以上是关于js node 节点 原生遍历 createNodeIterator的主要内容,如果未能解决你的问题,请参考以下文章