1、childNodes 属性,标准的,它返回指定元素的子元素集合,包括html节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==时才是元素节点,是属性节点,是文本节点,是注释节点。

有些人错误的使用()去取该集合元素,下表列出各浏览器对childNodes(i)的支持情况:

  IE6/7/8 Firefox3.5 Safari4 Chrome4 Opera10
childNodes(i) 支持 不支持 支持 支持 支持

2、有时候需要获取指定元素的第一个html子节点(非属性/文本节点),最容易想到的就是firstChild 属性。代码中第一个html节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。

  1. function getFirst(elem){
    for(var i=,e;e=elem.childNodes[i++];){
    if(e.nodeType==)
    return e;
    }
    }

3、通过nodeType来判断是哪种类型的节点,达到效果兼容。

<ul id="ul1">
<li><span>dgfgfhgh</span></li>
<li></li>
<li></li>
</ul>
window.onload=function(){
oUl1=document.getElementById("ul1");
// alert(oUl1.childNodes.length); //7
for(var i=0; i<oUl1.childNodes.length; i++){
if(oUl1.childNodes[i].nodeType==1){
oUl1.childNodes[i].style.background='red';
}
}

4、children 属性,非标准的,它返回指定元素的子元素集合。经测试,它只返回html节点,甚至不返回文本节点。且在所有浏览器下表现惊人的一致。和childNodes 一样,在firefox下不支持()取集合元素。因此如果想获取指定元素的第一个html节点,可以使用children[0]来替代上面的getFirst函数。需注意children在IE中包含注释节点。

<ul id="ul1">
<li><span>dgfgfhgh</span></li>
<li></li>
<li></li>
</ul>
window.onload=function(){
oUl1=document.getElementById("ul1");
//alert(oUl1.children.length); //3
for(var i=0; i<oUl1.children.length; i++){
oUl1.children[i].style.background='red';
}
}

children和childNodes 的区别的更多相关文章

  1. JavaScript中Element与Node的区别,children与childNodes的区别

    关于Element跟Node的区别,cilldren跟childNodes的区别很多朋友弄不清楚,本文试图让大家明白这几个概念之间的区别. Node(节点)是DOM层次结构中的任何类型的对象的通用名称 ...

  2. children和childNodes的区别

    children和childNodes 1,childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当no ...

  3. children 和childNodes 的区别

    1:childNodes /children相同点:它返回指定元素的子元素集合. 2:区别:children :  它是非标准的,仅返回HTML节点.甚至不返回文本节点.所有浏览器表现一 致. chi ...

  4. parentNode、parentElement,childNodes、children 它们有什么区别呢?

    parentNode.parentElement,childNodes.children 它们有什么区别呢?parentElement 获取对象层次中的父对象. parentNode 获取文档层次中的 ...

  5. jQuery 中的children()和 find() 的区别

    <!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...

  6. 基于jquery中children()与find()的区别介绍

    本篇文章介绍了,基于jquery中children()与find()的区别,需要的朋友参考下 .children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选 ...

  7. jquery遍历之children()与find()的区别

    hildren(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选. .find(selector)方法是返回匹配元 ...

  8. JS中,children和childNodes的不同之处

    <ul id="ul"><li></li><li></li><li><span></spa ...

  9. child和childNodes的区别

    child和childNodes区别: childNodes是标准属性, child是非标准属性 childNodes: 获取节点,不同浏览器表现不同 IE 只获取元素节点 非IE 获取元素节点和文本 ...

随机推荐

  1. Web应用程序使用说明

    目录 Web应用程序使用说明 1.组织权限概述 a)概述 b)组织权限设置 2.门户的使用 门户-栏目门户配置 3.安全策略功能使用说明 一.概述 二.安全策略设置 Web应用程序使用说明 1.    ...

  2. docker swarm英文文档学习-12-在集群模式中的Raft共识

    Raft consensus in swarm mode 在集群模式中的Raft共识 当Docker引擎在集群模式下运行时,manager节点实现Raft 共识算法来管理全局集群状态.Docker s ...

  3. metamask源码学习-controllers-network

    https://github.com/MetaMask/metamask-extension/tree/master/app/scripts/controllers/network metamask- ...

  4. 流程控制之for

    for循环是 迭代式循环,其强大之处在于循环取值 用法一: l = [1, 2, 3, 4, 5, 5, 6, 5, 4, 3] for x in l: print(x) info = {'} for ...

  5. MATLAB 图形着色

    1.matlab中的颜色查找表函数: (1)autumn:从红色向橘黄色.黄色平稳过渡: (2)bone:为含有较高的蓝色组分的gray颜色查找表: (3)colorcube:包含RGB颜色空间中尽可 ...

  6. Linux kernel 之 socket 创建过程分析

    重要结构体 struct socket 结构体 // 普通的 BSD 标准 socket 结构体 // socket_state: socket 状态, 连接?不连接? // type: socket ...

  7. python基础学习第一天

    def用法 函数定义的基本格式如下: def function(params):     somthing     return values 说明:return语句可选,出现return语句表示函数 ...

  8. HashMap 的实现原理

    hashMap用了一个名字为table的数组:还有若干个名字为entry的链表.看hashMap是如何应用这些数据结构的.用插 入<key,value>举例:hashMap首先会通过key ...

  9. SPOJ GSS(Can you answer the Queries)系列 7/8

    GSS1 线段树最大子段和裸题,不带修改,注意pushup. 然而并不会猫树之类的东西 #include<bits/stdc++.h> #define MAXN 50001 using n ...

  10. pycharm shortcut

    Alt+F12 is a shortcut to open/hide Terminal panel