DOM_节点层次
一、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_节点层次的更多相关文章
- DOM_节点层次_Element类型
一.Element类型: nodeType: 1; nodeName: 元素名; nodeValue: null; parentValue: Document 或者 Element; var oDiv ...
- DOM_节点层次_Document类型
一.Document类型 nodeType: 9; nodeName: "#document"; nodeValue: null; parentValue: null; owner ...
- JS基础DOM篇之二:DOM级别与节点层次?
通过上一篇我们大致了解了什么是DOM,今天我们继续深入了解. 1.DOM级别 在大家阅读DOM标准的时候,可能会看到DOM(0/1/2/3)级的字眼,这就是DOM级别.但实际上,DOM0级 ...
- JavaScript之Dom1|DOM2|DOM3之DOM1【节点层次】
长文慎读. 导航: 1.节点层次 2.Node类型 3.Document类型 4.Element类型 5.Text类型 6.Comment类型 7.CDATASection类型 8.DocumentT ...
- javascript DOM中的节点层次和节点类型概述
针对JS高级程序设计这本书,主要是理解概念,大部分要点源自书内.写这个主要是当个笔记加总结 存在的问题请大家多多指正! 因为DOM这方面的对象方法操作性都特别强,但是逻辑很简单,所以就没有涉及到实际的 ...
- 《JAVASCRIPT高级程序设计》节点层次和DOM操作技术
DOM可以将任何HTML和XML文档描绘成一个由多层次节点构成的结构.节点分为几种不同的类型,每种类型分别表示文档中不同的信息,每种类型都继承与Node接口,因此都共同享有一些属性和方法,同时,也拥有 ...
- 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 ...
- DOM之节点层次
1.1 Node类型 DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现.这个Node接口在JS中是作为Node类型实现的:除了IE之外,其他浏览器可访问这个类型.JS中的所有节点 ...
- JavaScript中DOM节点层次Text类型
文本节点 标签之间只要有一点内容都会有文本节点,包括空格 创建文本节点document.createTextNode() 可以使用 document.createTextNode 创建新文本节点 == ...
随机推荐
- 数据返回[数据库基础]——图解JOIN
废话就不多说了,开始... 一.提要 JOIN对于接触过数据库的人,这个词都不生疏,而且很多人很清楚各种JOIN,还有很多人对这个懂得也不是很透辟,此次就说说JOIN操纵. 图片是很容易被接受和懂得, ...
- Parallax Mapping Shader 凸凹感【转】
原文 http://www.azure.com.cn/default.asp?cat=11&page=2 Parallax Mapping 就是通过高度图中的高度,对纹理坐标进行偏移,来视觉上 ...
- S5PV210开发系列四_uCGUI的移植
S5PV210开发系列四 uCGUI的移植 象棋小子 1048272975 GUI(图形用户界面)极大地方便了非专业用户的使用,用户无需记忆大量的命令,取而代之的是能够通过窗体.菜单 ...
- Asp.net 使用正则和网络编程抓取网页数据(有用)
Asp.net 使用正则和网络编程抓取网页数据(有用) Asp.net 使用正则和网络编程抓取网页数据(有用) /// <summary> /// 抓取网页对应内容 /// </su ...
- Jquery 回到顶部
转:http://www.cnblogs.com/DemoLee/archive/2012/04/20/2459082.html 用jQuery实现渐隐渐显的返回顶部效果(附多图) 先来看几个图片 ...
- javascript面向对象学习笔记——创建对象(转)
工厂模式 该模值抽象了创建具体对象de过程.用函数来封装噫特定接口创建对象的细节. function createPerson(name,age,job){ var o=new Object(); o ...
- Python学习 之 OS模块
1.目录操作 import os os.mkdir('abc') #创建abc文件 tree a #查看目录结构 2.目录遍历 方式一:递归 import os def dirList(path ...
- apache配置文件
httpd-vhost.conf文件中: <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com Do ...
- Linux 引导过程内幕
转载:http://www.ibm.com/developerworks/cn/linux/l-linuxboot/index.html 从主引导记录到第一个用户空间应用程序的指导 引导 Linu ...
- SQLServer 之 char、varchar、nvarchar的区别
一.定义 1.char char是定长的,也就是当你输入的字符小于你指定的数目时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. 例如:char(8),最多可输入4个汉字或者8个 ...