关于为什么element对象的childNodes属性返回值有偏差的问题解释(知其所以然)
来源:互联网 发布:网络客服招聘 编辑:程序博客网 时间:2024/06/05 07:16
我们首先呈现一个例子;
<html>
<head>
<title>HTML_CSSS</title>
<script type="text/javascript">
function getNode() {
//获取ul标签
var ulLabel = document.getElementById("ulid");
//获取ul下面的子标签
var lis = ulLabel.childNodes;//兼容性差,在chrome显示长度7
alert(lis.length);//输出7
alert(lis[0]);//输出 [Object Text]
//var lis = ulLabel.getElementsByTagName("li");
//alert(lis.length);
}
</script>
</head>
<body>
<ul id="ulid">// \n
<li>aaaaa</li> // \n
<li>bbbbb</li> // \n
<li>ccccc</li> // \n
</ul>
<input type="button" value="BUTTON" onclick="getNode()">
</body>
</html>
本身我们逻辑上都认为,并且我们的目的也是想拿到ul的那3个子元素,但是返回的元素数组是7,而一旦我们用getElementsByTagName()方法却可以实现到需求。
原因是因为;在一些浏览器,chrome或者IE(高版本)上这个属性是将子节点他们都解析成文本节点(文字/字符串那些东西...),并且,在包括换行的时候用到那个换行符 \n 也囊括在内了,因此出现了结果的偏差,因此我们一般使用getElementsByTagName()方法来获取子元素.这个就存在兼容性问题啦
- 关于为什么element对象的childNodes属性返回值有偏差的问题解释(知其所以然)
- 【知其所以然】-对链接的思考
- firstChild,nextSibling,childNodes等属性的问题
- 知其所以然:为什么算法这么难?
- 13. Element childNodes 属性
- IE9下childNodes属性值的错乱
- 关于JavaScript的 childNodes 方法的返回结果
- 知其所以然之永不遗忘的算法
- 知其所以然(三):为什么算法这么难?
- 知其所以然
- 知其所以然
- IDA知其所以然
- 知其所以然
- 原理-知其所以然
- js的Object对象如何访问中间有 . 点号的属性(键),获得其值?
- 关于使用Element.getNodeValue()返回NULL的问题
- 第三篇:知其然,知其所以然-USB音频设备的开发过程
- simplexml_load_string()返回的对象属性值获取问题
- JBDC+mysql Notes
- Window7旗舰64位SP1下安装MariaDB10.2.6
- Kubernetes服务之StatefulSets简介
- LEetCode(6)
- uwsgi+django+nginx+supervisor部署web应用(python)
- 关于为什么element对象的childNodes属性返回值有偏差的问题解释(知其所以然)
- kernel (I) basic learning
- Python设计模式-解释器模式
- ubuntu16.04 安装有道词典
- Python设计模式-中介者模式
- Python设计模式-备忘录模式
- Python设计模式-状态模式
- 非线性最小二乘法优化问题(1)
- Python基础-多进程