js node 节点 原生遍历 createNodeIterator
2024-10-21 05:53:00
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
最新文章
- Qt model和tableview的使用
- 34、Shiro框架入门三,角色管理
- JSON跨域请求
- 通过关闭UseDNS和GSSAPIAuthentication选项加速SSH登录
- UVa784 Maze Exploration
- selendroid项目实战2--ruby下的TOAST定位
- 简单的div蒙层
- JQuery 的基本命令
- JAVA并发,线程工厂及自定义线程池
- MySQL 存储过程例子,不能在if else里面用begin end否则会报错Error Code : 1064!
- CSS中设置border:none和border:0的区别
- JAVA线程sleep和wait方法区别
- 任务超时退出的方法 C#
- hdu 1277 AC自动机入门(指针版和数组版)
- Windows Server2008各版本区别
- 出现System.web.mvc冲突的原因及解决方法CS0433
- Linux下处理文件中的^M
- 全网最详细的HA集群的主节点之间的双active,双standby,active和standby之间切换的解决办法(图文详解)
- 【IT笔试面试题整理】字符串的排列
- 微信小程序的图片懒加载
热门文章
- echarts_04
- 【Spark机器学习速成宝典】模型篇01支持向量机【SVM】(Python版)
- CentOS 7下载
- 异步上传&;预览图片-不压缩图片
- Linux高级调试与优化——同时抓取coredump和maps文件
- LinkedList,ArrayList,Vector,HashMap,HashSet,HashTable之间的区别与联系
- leetcode 102二叉树的层序遍历
- 使用SpringWebFlow
- SQLALchemy如何查询mysql某个区间内的数据
- python_面试题_HTTP基础相关问题