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的更多相关文章

  1. 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

    一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ...

  2. 原生JS forEach()和map()遍历的区别以及兼容写法

    一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  3. 原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历

    一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  4. 应该用forEach改变数组的值吗? 原生JS forEach()和map()遍历的异同点

    应该用forEach改变数组的值吗? https://segmentfault.com/q/1010000013170900?utm_source=index-hottest 由于js中的数组是引用类 ...

  5. java实现二叉树的Node节点定义手撕8种遍历(一遍过)

    java实现二叉树的Node节点定义手撕8种遍历(一遍过) 用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍 ...

  6. 记录JS如何使用广度遍历找到节点的所有父节点

    我们在实际的工作业务场景中经常遇到这样的场景,求取树数据中某个节点的父亲节点以及所有的父亲节点,这样的场景下不建议使用深度遍历,使用广度遍历可以更快找到. 1.案例解说 比如树的长相是这样的: 树的数 ...

  7. Node节点

    1.Node:节点元素节点->HTML标签文本节点->文字 但是在标准浏览器(除了IE6~8)中会把空格和换行都当做文本节点来处理注释节点->注释document2.节点的特征元素节 ...

  8. 层次节点——NODE节点

    1.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  9. JS添加节点方法与JQuery添加节点方法的比较及总结

    原生JS添加节点方法与JQuery添加节点方法的比较及总结   一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div ...

随机推荐

  1. 搜狗输入法弹窗搜狐新闻的处理 以及sogoucloud.exe的处理

    https://www.cnblogs.com/Asa-Zhu/p/3359034.html 使用everything搜索SohuNews.exe,然后找到安装路径C:\Program Files ( ...

  2. 4.数据挖掘的数据仓库与OLAP技术

    1.什么是数据仓库 面向主题的.集成的.时变的.非易失的 2.数据仓库和异种DBMS 3.OLTP vs OLAP 4.为什么建立分离的数据仓库? 5.多维数据模型(数据仓库的概念建模)三类度量 4. ...

  3. C# NAudio 变声

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. WPF VLC客户端和SDK的简单应用

    VLC_SDK编程指南 VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议.它可以支持目前市面上大多数的视频解码,除了Rea ...

  5. [Nova ERROR] InternalError: Nova requires QEMU version 2.5.0 or greater.

    目录 文章目录 目录 问题 调查 解决 问题 nova-compute service 启动失败 InternalError: Nova requires QEMU version 2.5.0 or ...

  6. docker rm & docker rmi & docker prune 的差异

    docker rm & docker rmi & docker prune 的差异 docker rm : 删除一个或多个 容器 docker rmi :  删除一个或多个 镜像 do ...

  7. 学习SASS

    这几天白老师叫我们css的扩展技术,有什么LESS,还有SASS(我还以为是SAS...QAQ),LESS由于功能比较简单,用的也比较少所以我们重点学习了SASS.简单地说SASS是一种CSS的开发工 ...

  8. APP自动化测试,判断页面与预期是否相同

    自动化测试中,有时需要验证页面跳转是否正常 1.选择appium实现,因为要填写appPcakage和appActivity,只能验证一个单独的APP,在自身APP上各个页面是否跳转正常 例如:焦点从 ...

  9. 问题记录 | 记录PIL中Image.save的一个坑

    Image.save然后open数值是会变的 我找了一个下午终于找出问题所在,PIL的Image库中把图片resize了之后存在本地然后再读进来,与直接resize后的数值是不一样的. data_va ...

  10. 微信小程序 解析html格式内容

    需要引入html-view文件 1/js 代码 const HtmlParser=require('../../utils/html-view/index') data: { coupon_text: ...