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. java.util.logging.Logger_01

    1.参考网址 1.1.java.util.logging.Logger使用详解 http://lavasoft.blog.51cto.com/62575/184492 1.2.Java内置Logger ...

  2. JavaScript tips —— 谈谈数组乱序

    前言 先看一个段代码 function randArr (arr) { return arr.sort(() => { return (Math.random() - 0.5); }); } 目 ...

  3. python基础7 - 函数

    1. 函数的快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用 函数的使用包含两个步骤: 定义函数 —— 封装 独立的功能 调用函数 —— 享受 封装 的成果 函数 ...

  4. postgresql centos6.5安装以及常用命令

    今天在centos6.5下安装postgresql数据库,现在整理自己操作步骤. 一. Centos6.5 下安装postgresql9.4 1.1. 显示所有的有关postgresql安装包 yum ...

  5. C++(二十二) — 指针变量、函数指针、void指针

    1.指针变量 (1)指针变量必须在初始化后才可以正常使用,初始化就是给他分配一个有效的数据地址. 先初始化,后使用. (2)指针可以进行加减运算,++ 或者 --:将指针的位置向前或者向后移动一个数据 ...

  6. Selenium with Python 002 - 快速入门

    一.简单实例演示 1.创建 python_org_search.py: #!/usr/bin/env python from selenium import webdriver from seleni ...

  7. [转载]java调用PageOffice生成word

    一.在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jac ...

  8. 【转载】Git,Github和Gitlab简介和基本使用Gitlab安装和使用

    http://blog.csdn.net/u011241606/article/details/51471367

  9. LeetCode OJ:Plus One (加1)

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  10. warning MSB8004: Output Directory does not end with a trailing slash.

    当在VC里编译时,发现这个警告,就是说设置的目录参数不是以反斜杠结束的目录名称,如下: 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V ...