nextSibling VS nextElementSibling
2. nextSibling vs nextElementSibling
{
//FF
{
在Firefox中,link2的nextSibling并不是link3,因为两者之间有一个换行符.
这被认为是一个空格, 所以link2的nextSibling就是这个空格,即一个text node,IE不存在这个问题。
<a href="link2" id="link2"></a>
<a href="link3" id="link3"></a>
} //IE
{
IE不存在这个问题。
} //solution
{
//cause
{
DOM标准明确说了nextSibling返回当前元素的下一个Node,而<a>元素后的Node明显是一个TextNode,
其nodeValue是'\n',而IE竟然没有返回一个TextNode,跳过了一个Node
} //不支持version
{
FireFox(版本号:3.5.11)中不支持JavaScript的previousSibling属性。 IE(版本号:8.0.6001.18702)中不支持JavaScript的previousElementSibling属性。 用jQuery可以达到跨浏览器的支持。
} //solution
{
/最新的浏览器确实已经已经支持如下的DOM标准
{
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1 3.5 9 (IE6-8 incl commend nodes) 10 4 //childElementCount
{
属性返回当前元素的子元素个数,而不是子节点个数.
只有当一个节点的nodeType属性为1(Node.ELEMENT_NODE==1)时,它才是元素节点.
文本节点和注释节点不属于元素节点. //注意
{
另外,由于IE9之前的版本不支持childElementCount属性, 所以如果考虑兼容性的话,
请使用element.children.length(并且需要判断nodeType是否为1)
来代替childElementCount属性.
}
} //children vs childNodes
{
children:获取一个元素的【子元素节点】集合
childNodes:获取一个元素的【子节点】集合
(/注意:IE10支持nextSibling.children|childNodes/)
(/ FF23支持netxElementSibling.children|childNodes/) //注意
{
在IE9之前,element.children会包含一个元素的子元素节点和子注释节点.
在IE9之后或者其他浏览器中, 只包含子元素节点.
}
} //一般人使用nextSibling是不会期望去得到一个换行符的,
//所以新版的DOM标准提供了nextElementSibling来跳过这些【空白符和文本节点】
{
nextElementSibling
firstElementChild
lastElementChild
childElementCount
children
previousElementSibling
}
} //example
{
var cusName = e.parentNode.previousElementSibling.children[1].value;
} }
}
}
} 参考链接
http://ricoyu.iteye.com/blog/940760
https://developer.mozilla.org/zh-CN/docs/DOM/element.childElementCount
nextSibling VS nextElementSibling的更多相关文章
- nextSibling 和nextElementSibling
在使用DOM过程中发现一个问题: 使用nextSibling 属性返回指定节点之后紧跟的节点,在相同的树层级中.被返回的节点以 Node 对象返回. this.arrow = this.screen. ...
- 【踩坑】nextSibling 和nextElementSibling的区别
DOM 使用nextSibling属性返回指定节点之后的下一个兄弟节点,(即:相同节点树层中的下一个节点). nextSibling属性与nextElementSibling属性的差别: nextSi ...
- 兼容的firstChild,lastChild,nextSibling,previousSibling写法
在IE下是支持firstChild,lastChild,nextSibling,previousSibling 但是在FF下,由于它会把标签之间的空格当成文本节点,所以为了准确地找到相应的元素,会用 ...
- 05.DOM
DOM基础 什么是DOM 标签元素节点浏览器支持情况 火狐支持最好 谷歌其次 ie最差 尤其是ie6-8DOM节点节点分为:元素节点和文本节点 测试节点的类型用nodeTypenodeType 为3 ...
- DOM相关属性,方法,兼容性问题处理小析
DOM:Document Object Model文档对象模型,用于让程序(js)取操作页面中的元素.DOM节点类型有12种. (一)属性 一.子节点操作1.所有子节点(1)元素.childNodes ...
- JavaScript 基础第八天(DOM第二天)
一.引言 初步认识DOM有可能会被各种不熟悉的因为因素影响自己的学习心态,你需要的是多去记忆一些单词然后加强自己的代码量. 二.导入 在昨天初步认识DOM以后我们见天将接着介绍有关于DOM的内容. 三 ...
- js DOM Element属性和方法整理
节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. childNodes获取到的是NodeLi ...
- javascript基础07
javascript基础07 1.节点 元素.childNodes : 属性 只读 属性 子节点列表集合 元素.childNodes 只包含子节点,不包含孙节点 DOM节点的类型有很多种,w3c标准有 ...
- Dom初
DOM基础 •什么是DOM •浏览器支持情况 lDOM节点 •childNodes nodeType –获取子节点 <!DOCTYPE html PUBLIC "-//W3C//DT ...
随机推荐
- QT 进度条 QProgressDialog
//默认构造函数 参数依次为,对话框正文,取消按钮名称,进度条范围,及所属 QProgressDialog *progressDlg=new QProgressDialog( QStringLiter ...
- sklearn学习笔记之开始
简介 自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了.scikit-learn简称sklearn,支持包括分类.回归.降维和聚类四大机器学习算法.还包含了特征 ...
- docker之DockerSwarm的了解
这次一起了解下docker Swarm,什么是dockerSwarm. 什么是docker Swarm 产品背景 使用docker的流程,ssh到一台服务器,运行docker命令来运行本机的docke ...
- BZOJ 4726 [POI2017]Sabota?:树形dp
传送门 题意 某个公司有 $ n $ 个人,上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他下属(直接或者间接, 不包括他自己)中叛徒占的比例超过 $ x $ , ...
- (http请求+cookie)的交互流程
如果步骤5携带的是过期的cookie或者是错误的cookie,那么将认证失败,返回至要求身份认证页面. 当前 Cookie 有两个版本:Version 0 和 Version 1.通过它们有两种设置响 ...
- vue.js 1.0中用v-for遍历出的li中的@click事件在移动端无效
在vue.js使用v-for遍历出的li中的@click事件在移动端无效,在网页端可以执行,代码如下 <template> <div class="rating-secti ...
- python基础8之类的实例化过程剖析
一.概述 之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性. 二.类的语法 2.1 语法 class dog(obje ...
- MySQL 5.6 二进制包安装配置多实例方法
MySQL支持一台机器上启动多个实例,如果你的机器性能很好的话,启动多个实例将最大化利用你的服务器硬件资源. MySQL多实例一般有两种配置方法: 1.官方推荐的mysqld_multi方式,多个实例 ...
- 【转】Symstore 详细使用
SymStore (symstore.exe) 是用于创建符号存储的工具.它被包含在Windows调试工具包中. SymStore按照某种格式存储符号,使得调试器可以通过时间戳.映像大小(对于.dbg ...
- 修改MAC过程
首先打开PC的Telnet功能,如下: 对PC设置本地IP 2.cmd→telnet 192.168.1.230(出厂默认IP) 3.root →密码:20...................(公司 ...