一、DOM1级定义了一个Node接口,这个接口是由DOM中的所有节点类型实现的。Node接口共有12种节点类型,常见的是元素节点、文本节点和文档节点。

Node.ELEMENT_NODE(1);——元素节点

Node.Text_NODE(3);——文本节点

Node.DOCUMENT_NODE(9);——文档节点

二、IE浏览器没有Node类型的构造函数,保证兼容,可以做以下比较:检查节点类型 是否是元素

if (someNode.nodeType == 1) { //兼容所有浏览器
alert('Node is an element');
value = someNode.nodeName;
}}

对于 元素节点  nodeName始终是标签名 nodeValue始终是null

三、每个节点都有childNodes属性,保存着一个NodeList对象。NodeList是类数组对象,但并不是Array的实例,是对象,并且是实时更新。

someNode.childNodes[0] || someNode.childNodes.item(0)

NodeList转换为数组:

function coverToArray(nodes) {
var array = null;
try {
array = Array.protoType.slice.call(nodes,0);//其他浏览器
} catch(ex){
array = new Array();
for (var i = 0, len = nodes.length; i < len; i++) {
array.push(nodes[i]);//IE8以及更早版本
}
}
return array;
}

注:hasChildNodes() 返回布尔值 查询是否存在子节点 效率高于查询childNodes列表

所有节点都有ownerDocument 指向整个文档的文档节点(document).

四、节点操作

appendChild(新节点) 在末尾添加一个节点,

insertBefre(新节点,参照节点) 插入到特定位置

replaceChild(新节点,老节点) 替换节点 老节点还在文档 但是没有位置

removeChild(节点) 删除节点 节点还在文档 但是没有位置

cloneNode(布尔值) true:深复制

<ul>
<li>11</li>
<li>22</li>
<li>33</li>
</ul>
myList = document.getElementById("list");
var deepList = myList.cloneNode(true);
alert(deepList.childNodes.length)//3(IE <9) 或者 7 (其他浏览器)

IE8— 不为空白符创建节点 因此为3

cloneNode()不会复制事件 但是IE会复制事件 所以复制之前需要先移除事件。

DOM_节点层次的更多相关文章

  1. DOM_节点层次_Element类型

    一.Element类型: nodeType: 1; nodeName: 元素名; nodeValue: null; parentValue: Document 或者 Element; var oDiv ...

  2. DOM_节点层次_Document类型

    一.Document类型 nodeType: 9; nodeName: "#document"; nodeValue: null; parentValue: null; owner ...

  3. JS基础DOM篇之二:DOM级别与节点层次?

    通过上一篇我们大致了解了什么是DOM,今天我们继续深入了解. 1.DOM级别       在大家阅读DOM标准的时候,可能会看到DOM(0/1/2/3)级的字眼,这就是DOM级别.但实际上,DOM0级 ...

  4. JavaScript之Dom1|DOM2|DOM3之DOM1【节点层次】

    长文慎读. 导航: 1.节点层次 2.Node类型 3.Document类型 4.Element类型 5.Text类型 6.Comment类型 7.CDATASection类型 8.DocumentT ...

  5. javascript DOM中的节点层次和节点类型概述

    针对JS高级程序设计这本书,主要是理解概念,大部分要点源自书内.写这个主要是当个笔记加总结 存在的问题请大家多多指正! 因为DOM这方面的对象方法操作性都特别强,但是逻辑很简单,所以就没有涉及到实际的 ...

  6. 《JAVASCRIPT高级程序设计》节点层次和DOM操作技术

    DOM可以将任何HTML和XML文档描绘成一个由多层次节点构成的结构.节点分为几种不同的类型,每种类型分别表示文档中不同的信息,每种类型都继承与Node接口,因此都共同享有一些属性和方法,同时,也拥有 ...

  7. poj 1330 【最近公共祖先问题+fa[]数组+ 节点层次搜索标记】

    题目地址:http://poj.org/problem?id=1330 Sample Input 2 16 1 14 8 5 10 16 5 9 4 6 8 4 4 10 1 13 6 15 10 1 ...

  8. DOM之节点层次

    1.1 Node类型 DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现.这个Node接口在JS中是作为Node类型实现的:除了IE之外,其他浏览器可访问这个类型.JS中的所有节点 ...

  9. JavaScript中DOM节点层次Text类型

    文本节点 标签之间只要有一点内容都会有文本节点,包括空格 创建文本节点document.createTextNode() 可以使用 document.createTextNode 创建新文本节点 == ...

随机推荐

  1. IT项目管理工具总结(转载)

    以前用过一个cs版的忘记叫啥名了,还用个禅道,感觉一般“5. 测试管理: 项目软件缺陷Bug状态跟踪”在公司内部自己测试或者试用期上线后后期维护阶段用的多,有的公司单独做个系统让用户提问题来修改,也是 ...

  2. C语言用static限制函数以及全局变量的作用域

    今天才发现这个东西! C语言中没有public private之类的东西. 如果一个函数或者一个全局变量只想在一个.c文件中使用,可以在前面加上static! 以前我还傻傻的每个.c文件中的函数都加一 ...

  3. BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离

    3170: [Tjoi 2013]松鼠聚会 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  4. AES加密算法(C++实现,附源代码)

    先搞定AES算法,基本变换包含SubBytes(字节替代).ShiftRows(行移位).MixColumns(列混淆).AddRoundKey(轮密钥加) 其算法一般描写叙述为 明文及密钥的组织排列 ...

  5. LumiSoft.Net邮件接收乱码问题解决

    本文非本人编写,转载自:http://www.cnblogs.com/youngerliu/archive/2013/05/27/3101488.html 今天遇到用LumiSoft.Net这个组件收 ...

  6. SSL连接建立过程分析(1)

    Https协议:SSL建立过程分析 web訪问的两种方式: http协议,我们普通情况下是通过它訪问web,由于它不要求太多的安全机制,使用起来也简单,非常多web网站也仅仅支持这样的方式下的訪问. ...

  7. WebBrowser 禁用脚本错误提示

    public partial class Text : UserControl {        public Text()        {                              ...

  8. jQuery获取表单各元素的值

    radio值获取 $("input[type='radio']:checked").val(); 2,设置指定的项为当前选中项 $("input[type='radio' ...

  9. php与ajax交互中文乱码(字符串转化)

    一.从后台传过来的json不做处理,前端result.name这样调用回乱码.应该使用urldecode将jsonencod转码 注意json只接受utf-8编码的字符,所以json_encode() ...

  10. windows系统-web渗透工具-AWVS

    windows系统-web渗透工具-AWVS ACUNETIX WEB VULNERABILITY SCANNER(AWVS) Awvs是一款很出名的web安全扫描器,属于windows系统平台下最流 ...