`
kouyandong
  • 浏览: 5553 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

js Dom详解

    博客分类:
  • js
阅读更多
Node往往被翻译为节点,在一个对象(可以简单的理解为是HTML页面中),一个属性name="aaa"可以是一个节点,一个< div id="aaa">……< /div>也可以是一个节点,在< body>……< /body>中的,也是一个大大的节点。下面是一些有关Node的属性和方法,并没有包含部分不兼容IE和FF内容的讲解。

Node的属性介绍:

nodeType:显示节点的类型

nodeName:显示节点的名称

nodeValue:显示节点的值

attributes:获取一个属性节点

firstChild:表示某一节点的第一个节点

lastChild:表示某一节点的最后一个子节点

childNodes:表示所在节点的所有子节点

parentNode:表示所在节点的父节点

nextSibling:紧挨着当前节点的下一个节点

previousSibling:紧挨着当前节点的上一个节点

ownerDocument:(不知)

Node有各种各样的节点,我们先花一些时间认识他们,同时一并了解nodeType,nodeName和nodeValue属性:

名称:元素节点

nodeType:ELEMENT_NODE

nodeType值:1

nodeName:元素标记名

nodeValue:null

<body>

<div id = "t" ><span></span></div>

</body>

<script>

var d = document.getElementById("t");

document.write(d.nodeType);

document.write(d.nodeName);

document.write(d.nodeValue);

//显示 1 DIV null

</script>

名称:属性节点

nodeType:ATTRIBUTE_NODE

nodeType值:2

nodeName:属性名

nodeValue:属性值

<body>

<div id = "t" name="aaa"><span></span></div>

</body>

<script>

var d = document.getElementById("t").getAttributeNode("name");

document.write(d.nodeType);

document.write(d.nodeName);

document.write(d.nodeValue);

//显示 2 name aaa

</script>

名称:文本节点

nodeType:TEXT_NODE

nodeType值:3

nodeName:#text

nodeValue:文本内容

<body>

<div id = "t">bbb</div>

</body>

<script>

var d = document.getElementById("t").firstChild;

document.write(d.nodeType);

document.write(d.nodeName);

document.write(d.nodeValue);

//显示 3 #text bbb

</script>

名称:CDATA文本节点(XML中传递文本的格式)

nodeType:CDATA_SECTION_NODE

nodeType值:4

nodeName:#cdata-section

nodeValue:CDATA文本内容

(作者省略8个属性,需技术补充)

attributes属性,直接获取一个属性节点,注意这里要使用[],保持IE和FF的兼容性。

<body name="ddd">

<div id = "t" name = "aaa"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var d = document.getElementById("t").attributes["name"];

document.write(d.name);

document.write(d.value);

//显示 name aaa

</script>

firstChild和lastChild属性,表示某一节点的第一个和最后一个子节点:

<body>

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var d = document.getElementById("t");

document.write(d.firstChild.innerHTML);

document.write(d.lastChild.innerHTML);

//显示 aaa ccc

</script>

childNodes和parentNode属性,表示所在节点的所有子节点和所在节点的父节点,这里的childNodes注意是一个数组:

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var d = document.getElementById("t");

document.write(d.childNodes[1].innerHTML);

document.write(d.parentNode.getAttribute("name"));

//显示 bbb ddd

</script>

nextSibling和previousSibling属性,分别表示在parentNode的childNodes[]数组中,紧挨着当前节点的上一个和下一个节点:

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var d = document.getElementById("t").childNodes[1];

document.write(d.nextSibling.innerHTML);

document.write(d.previousSibling.innerHTML);

//显示 ccc aaa

</script>

ownerDocument属性(不知如何使用)

Node的方法介绍:

hasChildNodes():判定一个节点是否有子节点

removeChild():去除一个节点

appendChild():添加一个节点

replaceChild():替换一个节点

insertBefore():指定节点位置插入一个节点

cloneNode():复制一个节点

normalize():(不知)

hasChildNodes()方法:判定一个节点是否有子节点,有返回true,没有返回false

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

<div id = "m"></div>

</body>

<script>

alert(document.getElementById("t").hasChildNodes());

alert(document.getElementById("m").hasChildNodes());

// 第一个true,第二个false

</script>

removeChild()方法:去除一个节点

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var d = document.getElementById("t").firstChild;

document.getElementById("t").removeChild(d);

// <span>aaa</span>被去除

</script>

appendChild()方法:添加一个节点,如果文档树中已经存在该节点,则将它删除,然后在新位置插入。

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var d = document.getElementById("t").firstChild;

document.getElementById("t").appendChild(d);

// <span>aaa</span>成了最后一个节点

</script>

replaceChild()方法:从文档树中删除(并返回)指定的子节点,用另一个节点来替换它。

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var newd = document.createElement("span");

newd.innerHTML = "eee";

var oldd = document.getElementById("t").lastChild;

document.getElementById("t").replaceChild(newd,oldd);

// 最后一项成了 eee

</script>

insertBefore()方法:在指定节点的前面插入一个节点,如果已经存在,则删除原来的,然后在新位置插入

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>

</body>

<script>

var newd = document.createElement("span");

newd.innerHTML = "eee";

var where = document.getElementById("t").lastChild;

document.getElementById("t").insertBefore(newd,where);

// 在最后一项的前面多了一项 eee

</script>

cloneNode()方法:复制一个节点,该方法有一个参数,true表示同时复制所有的子节点,false表示近复制当前节点

<body name="ddd">

<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div><div id = "m"></div>

</body>

<script>

var what = document.getElementById("t").cloneNode(false).innerHTML;

document.getElementById("m").innerHTML = what;

// 增加了一个aaabbbccc

</script>
分享到:
评论

相关推荐

    JavaScript中DOM详解.docx

    JavaScript中DOM详解.docx

    【JavaScript源代码】JavaScript中BOM和DOM详解.docx

    JavaScript中BOM和DOM详解  目录 BOM(浏览器对象模型) 1. window 获取浏览器c窗口尺寸 2. screen 获取电脑屏幕大小 3. window 开启关闭窗口 4. 浏览器事件 5. location 6. history 7. navigator 获取浏览器相关...

    javascriptDOM详解

    阿里巴巴的javascript培训PPT,介绍的比较详细

    【JavaScript源代码】Vue源码分析之虚拟DOM详解.docx

    Vue源码分析之虚拟DOM详解  虚拟DOM就是为了解决浏览器性能问题而被设计出来的。例如,若一次操作中有10次更新DOM的动作,虚拟DOM不会立即操作DOM,而是将这10次更新的diff内容保存到本地一个JS对象中,最终将这个...

    JavaScript中Dom操作实例详解.docx

    JavaScript中Dom操作实例详解.docx

    javascript中的DOM详解

    text javascript&quot;&gt; 创建一个新节点 var a document createElement &quot;div&quot; ; 使用警告对话框输出节点 alert a ; &lt; script&gt; 错误的节点 &lt;script type &quot;text javascript&quot;&...

    DOM编程详解(含HTML部分)

    DOM编程详解(含HTML部分)DOM是Document Object ...简单理解,DOM解决了Netscape的Javascript和Microsoft的Jscript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对像。

    js获取HTML DOM节点详解

    在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式、...令人欣慰的是,使用JavaScript获取节点的方法有很多种,这里简单做一下总结(以下方法在IE7和Firefox2.0.0.11测试通过):

    javascript学习笔记(三)BOM和DOM详解

    我们都知道, javascript 有三部分构成,ECMAScript,DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异。 1. DOM 是 W3C 的标准; [所有浏览器公共遵守的标准] 2. BOM 是 ...

    javascript dom 操作详解 js加强

    javascript dom 操作详解 js加强操作实现代码。

    javascript DOM的详解及实例代码

    主要介绍了javascript DOM的详解及实例代码的相关资料,需要的朋友可以参考下

    Javascript--DOM.rar_javascript

    js-dom详解:javascript操作dom的介绍文档。

    JavaScript DOM元素常见操作详解【添加、删除、修改等】

    主要介绍了JavaScript DOM元素常见操作,包括针对dom元素的添加、删除、修改等相关操作实现技巧与注意事项,需要的朋友可以参考下

    【JavaScript源代码】react中的虚拟dom和diff算法详解.docx

     比如我们创建一个div,我们可以在控制台查看一下这个div上自带或者继承了很多属性,尤其是我们使用js操作DOM的时候,我们的DOM本身就很复杂,js的操作也会占用很多时间,但是我们控制不了DOM元素本身,因此虚拟DOM...

    JavaScript中DOM详解

    主要介绍了jQuery 中DOM 操作详解,以及在火狐和IE之间的13点JavaScript差异,需要的朋友可以参考下

    网页开发手记.HTML.CSS.JavaScript实战详解

    网页开发手记.HTML.CSS.JavaScript实战详解内容简介:《网页开发手记:HTML CSS Javascript实战详解》,本书学习的三大技术是web标准的主要组成部分,并且在javascript部分以实例方式介绍了dom的知识。...

    《JavaScript+DHTML语法与范例详解词典》源码

    此为《JavaScript+DHTML语法与范例详解词典》一书的源码. 内容简介 《JavaScript+DHTML语法与范例详解词典》词条包含的主要内容有JavaScript的全局函数和基础对象的函数和属性;如何通过JavaScript DOM对象来动态地...

    JavaScript Dom 绑定事件操作实例详解

    本文实例讲述了JavaScript Dom 绑定事件操作JavaScript Dom 绑定事件操作。分享给大家供大家参考,具体如下: JavaScript Dom 绑定事件 // 先获取Dom对象,然后进行绑定 document.getElementById('xx').onclick ...

    js DOM的事件常见操作实例详解

    主要介绍了js DOM的事件常见操作,结合实例形式详细分析了JavaScript DOM事件概念、原理及DOM操作常见实现技巧与使用注意事项,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics