childNodes与children区别
来源:互联网 发布:好记的淘宝店铺的店名 编辑:程序博客网 时间:2024/05/17 08:07
获取节点信息是js中必不可少的操作,那么childNodes和children有什么区别呢?
instanceof用来判断获取的节点的类型
测试对象在其原型链中是否存在一个构造函数的prototype属性
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。// 定义构造函数function C(){}function D(){}var o = new C();// true,因为 Object.getPrototypeOf(o) === C.prototypeo instanceof C;// false,因为 D.prototype不在o的原型链上o instanceof D;o instanceof Object; // true,因为Object.prototype.isPrototypeOf(o)返回trueC.prototype instanceof Object // true,同上
节点类型NodeType
节点类型 NodeType 元素element 1 属性attr 2 文本text 3 注释comments 8 文档document 9
document.getElementById获取到的是什么节点呢?
如下可知获得的是元素节点<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Demo</title></head><body> <div id="test"> <p>One</p> <P>Two</p> </div> <script> var oDiv=document.getElementById("test"); console.log(oDiv instanceof Node); //true console.log(oDiv instanceof Element); //true </script></body></html>
childNodes children
children是Element的属性,childNodes是Node的属性,我们再来测试一下:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Demo</title></head><body> <div id="test"> <p>One</p> <P>Two</p> </div> <script> var oDiv=document.getElementById("test"); console.log(oDiv.children[0] instanceof Node); //true console.log(oDiv.children[0] instanceof Element); //true console.log(oDiv.childNodes[0] instanceof Node); //true console.log(oDiv.childNodes[0] instanceof Element); //false console.log(typeof oDiv.childNodes[0].children); //undefined console.log(typeof oDiv.childNodes[0].childNodes); //object </script></body></html>
结论
区别:childNodes: 获取到所有的节点,包含元素节点、属性节点、文本节点 节点类型可以用nodeType来区分, 元素节点1、属性节点2、文本节点3
children: 则只会获取到元素节点
如:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <ul> <li></li> <li></li> </ul> <script type="text/javascript" src="./childNodes|children.js"> </script> </body></html>
window.onload=function(){ var oUl = document.getElementsByTagName('ul')[0]; alert(oUl.childNodes.length); console.log(oUl.childNodes); //[text, li, text, li, text]}
结果是childNodes 5
children 2
0 0
- childNodes与children区别
- children与childNodes的区别
- childNodes.length与children.length的区别
- Dom 中 children 与childNodes 的区别
- javascript中childNodes与children的区别
- children的childNodes区别
- childnodes与children详解
- Element与Node的区别,children与childNodes的区别
- parentNode、parentElement,childNodes、children 区别
- children和childNodes 的区别
- children和childNodes 的区别
- childNodes和children的区别
- children和childNodes 的区别
- childNodes children
- JavaScript中Element与Node的区别,children与childNodes的区别
- JS中Element与Node的区别,children与childNodes的区别
- JavaScript中Element与Node的区别,children与childNodes的区别
- JavaScript中Element与Node的区别,children与childNodes的区别
- libusb枚举设备的过程
- 庆功会
- swipper要注意的问题
- Token验证介绍
- 2017年4月21日,周结(九),android进阶学习之路
- childNodes与children区别
- python logging包装修饰器
- Deep Learning学习笔记(一)——基本介绍
- SOA 之路 -- 组件化开发:最大化利用现有代码
- SSL 2291——分组背包
- OpenGL入门学习
- saveAsTextFile很慢very slow
- [游戏随机生成地形] Meteorite Algorithm
- 工厂方法模式