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的更多相关文章
- 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较
		一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ... 
- 原生JS forEach()和map()遍历的区别以及兼容写法
		一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ... 
- 原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历
		一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ... 
- 应该用forEach改变数组的值吗?   原生JS forEach()和map()遍历的异同点
		应该用forEach改变数组的值吗? https://segmentfault.com/q/1010000013170900?utm_source=index-hottest 由于js中的数组是引用类 ... 
- java实现二叉树的Node节点定义手撕8种遍历(一遍过)
		java实现二叉树的Node节点定义手撕8种遍历(一遍过) 用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍 ... 
- 记录JS如何使用广度遍历找到节点的所有父节点
		我们在实际的工作业务场景中经常遇到这样的场景,求取树数据中某个节点的父亲节点以及所有的父亲节点,这样的场景下不建议使用深度遍历,使用广度遍历可以更快找到. 1.案例解说 比如树的长相是这样的: 树的数 ... 
- Node节点
		1.Node:节点元素节点->HTML标签文本节点->文字 但是在标准浏览器(除了IE6~8)中会把空格和换行都当做文本节点来处理注释节点->注释document2.节点的特征元素节 ... 
- 层次节点——NODE节点
		1.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ... 
- JS添加节点方法与JQuery添加节点方法的比较及总结
		原生JS添加节点方法与JQuery添加节点方法的比较及总结 一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div ... 
随机推荐
- 黑马lavarel教程---3、数据库和视图注意点
			黑马lavarel教程---3.数据库和视图注意点 一.总结 一句话总结: 使用其实都很简单,MVC的框架都很像,用的时候直接可以去看手册,这样才能记得住 1.数据库删除操作注意? 删非删:很多网站的 ... 
- What is the most efficient way to deep clone an object in JavaScript?
			What is the most efficient way to deep clone an object in JavaScript? Reliable cloning using a libra ... 
- opencart升级 各种坑  没有主题,没有扩展,权限等问题
			1.后台导航菜单没有扩展功能(扩展不显示) 2.只要是报错显示DIR_XXXX 基本都是config.php 和 admin/config.php 这两配置文件有关 我这问题是config.ph ... 
- Python统计学statistics实战
			python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ... 
- 【MAC】安装chrome浏览器
			step1:下载dmg安装包 chrome下载地址 点击[下载Chrome] step2:安装chrome 下载好googlechrome.dmg文件后,像其它程序一样安装就可以了 打开访达--> ... 
- 52N皇后II
			题目:给定一个整数 n,返回 n 皇后不同的解决方案的数量. 来源:https://leetcode-cn.com/problems/n-queens-ii/ 法一: 自己的代码 时间超过百分之90 ... 
- 【汇总】PHP 伪协议 利用
			日期:2019-07-28 21:24:36 更新: 作者:Bay0net 介绍: 0x01.基本信息 文件包含函数 include() require() include_once() requir ... 
- python调用dll详解
			参考链接https://www.cnblogs.com/TQCAI/p/8881530.html https://www.jb51.net/article/52513.htm https://www. ... 
- 修改主机名、hosts解析记录
			.hostname和hosts的区别 /etc/hostname中存放的是主机名 /etc/hosts存放的是域名与ip的对应关系 .修改主机名 需要下面两个步骤的结合才可以 2.1.修改网络主机名 ... 
- 将JSON字符串反序列化为指定的.NET对象类型
			目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ... 
