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

  1. nextSibling 和nextElementSibling

    在使用DOM过程中发现一个问题: 使用nextSibling 属性返回指定节点之后紧跟的节点,在相同的树层级中.被返回的节点以 Node 对象返回. this.arrow = this.screen. ...

  2. 【踩坑】nextSibling 和nextElementSibling的区别

    DOM 使用nextSibling属性返回指定节点之后的下一个兄弟节点,(即:相同节点树层中的下一个节点). nextSibling属性与nextElementSibling属性的差别: nextSi ...

  3. 兼容的firstChild,lastChild,nextSibling,previousSibling写法

    在IE下是支持firstChild,lastChild,nextSibling,previousSibling 但是在FF下,由于它会把标签之间的空格当成文本节点,所以为了准确地找到相应的元素,会用 ...

  4. 05.DOM

    DOM基础 什么是DOM 标签元素节点浏览器支持情况  火狐支持最好 谷歌其次 ie最差 尤其是ie6-8DOM节点节点分为:元素节点和文本节点 测试节点的类型用nodeTypenodeType 为3 ...

  5. DOM相关属性,方法,兼容性问题处理小析

    DOM:Document Object Model文档对象模型,用于让程序(js)取操作页面中的元素.DOM节点类型有12种. (一)属性 一.子节点操作1.所有子节点(1)元素.childNodes ...

  6. JavaScript 基础第八天(DOM第二天)

    一.引言 初步认识DOM有可能会被各种不熟悉的因为因素影响自己的学习心态,你需要的是多去记忆一些单词然后加强自己的代码量. 二.导入 在昨天初步认识DOM以后我们见天将接着介绍有关于DOM的内容. 三 ...

  7. js DOM Element属性和方法整理

    节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. childNodes获取到的是NodeLi ...

  8. javascript基础07

    javascript基础07 1.节点 元素.childNodes : 属性 只读 属性 子节点列表集合 元素.childNodes 只包含子节点,不包含孙节点 DOM节点的类型有很多种,w3c标准有 ...

  9. Dom初

    DOM基础 •什么是DOM •浏览器支持情况 lDOM节点 •childNodes  nodeType –获取子节点 <!DOCTYPE html PUBLIC "-//W3C//DT ...

随机推荐

  1. SQL中去掉换行符 与空格符

    SELECT B.TradeOrderID AS '二段交易号',B.ZipCode AS '邮编', B.Province AS '省',B.City AS '市',B.District AS '区 ...

  2. Java EE启示录

    前言 最近的这段时间一直在学习Java EE,刚刚完成了从0到1的蜕变,所以顺便整理一下我所了解到的Java EE,给刚入门学习的新人一些头绪,而所谓“启示录”,就是这个意思. 一.Java EE是什 ...

  3. crontab 参数详解

    crontab 参数 用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下: minute ...

  4. CSS打造固定表头

    html代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...

  5. 图示:DOM元素各种位置属性

  6. Linux:安装git

    1.下载 https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz 2.解压 tar zxvf git-2.9.4.tar.gz cd  ...

  7. java 数据库索引的注意事项

    索引缺点 1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert.update和delete.因为更新表时,不仅要保存数据,还要保存一下索引文件.2.建立索引会占用磁盘空间的 ...

  8. 26-THREE.JS 虚线绘制线框样式几何图形的材质

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  9. kibana查询语法

    单项term查询 例: 搜 Dahlen, Malone 字段field查询 field:value   例:city:Keyport, age:26 通配符 ? 匹配单个字符      例: H?b ...

  10. 【python】命令行解析工具argparse用法

    python的命令行参数 之前有用到optget, optparse, 现在这些都被弃用了. import argparse parser = argparse.ArgumentParser() ar ...