`

javascript childNodes

阅读更多

JavaScript中的Node相关内容介绍

                                      

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>
分享到:
评论

相关推荐

    js -- childNodes

    在JavaScript的世界里,`childNodes` 是一个非常重要的属性,它用于获取任何节点(如元素、文本或注释)的所有子节点。这篇博文“js -- childNodes”深入探讨了这一概念,帮助开发者更好地理解和利用这个特性。 `...

    JavaScript操作DOM元素的childNodes和children区别

    在JavaScript中,可以使用多种属性和方法来访问这些节点,其中就包括childNodes和children。 1. childNodes属性: childNodes属性返回指定元素的所有子节点,这包括元素节点、文本节点、注释节点等。在DOM树中,...

    使用 childNodes 和 rows,cells 操作表格列着色源代码

    本文包含两个源代码:使用 childNodes 操作表格列着色、使用 rows,cells 操作表格列着色。两种着色方式有什么区别?具体分析请参阅作者博客:http://blog.csdn.net/defonds/archive/2010/07/17/5741214.aspx。

    使用javascript最简单的代码输出XML中的内容

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于Web应用程序中,特别是与JavaScript结合时,可以实现数据的动态交互。本文将深入探讨如何使用JavaScript来读取并处理XML文件。 ...

    Javascript读取xml文件

    ### JavaScript读取XML文件知识点详解 #### 一、XML与JavaScript简介 - **XML (Extensible Markup Language)**:一种标记语言,类似于HTML,用于存储和传输数据。它被设计成具有自描述性,使得数据在不同系统间...

    javascript 操作xml的所有属性事件方法和实例

    JavaScript是一种广泛应用于Web开发的脚本语言,尤其在处理页面交互和动态内容更新方面表现出色。在XML(可扩展标记语言)数据的处理上,JavaScript同样有着强大的功能。XML是一种结构化数据格式,常用于存储和传输...

    JavaScriptDOM编程艺术

    《JavaScript DOM编程艺术》是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍。DOM是HTML和XML文档的结构化表示,JavaScript通过DOM API能够对网页内容进行动态操作,实现丰富的交互效果。...

    经典之作javascript dom编程艺术源码

    8. **遍历DOM**:`element.childNodes`返回元素的所有子节点,`element.firstChild`和`element.lastChild`分别指向第一个和最后一个子节点,`element.nextSibling`和`element.previousSibling`则指向相邻的兄弟节点...

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册十四:HTML DOM-文档元素的操作(二)

    `parentNode`, `childNodes`, `firstChild`, `lastChild`, `previousSibling`, 和 `nextSibling`等属性帮助我们移动到树中的其他节点。这在需要处理多个相关元素时非常有用。 总的来说,理解和熟练掌握HTML DOM的...

    javascript中parentNode,childNodes,children的应用详解

    `parentNode`、`childNodes`和`children`是DOM操作中常用的属性,它们分别用于获取元素的父节点、所有子节点和子元素。 1. `parentNode`: `parentNode`属性用于获取当前元素的直接父节点,即包含当前元素的那个...

    javascriptDOM

    8. **DOM遍历**:掌握如何遍历DOM树,如使用`childNodes`、`firstChild`、`lastChild`、`nextSibling`、`previousSibling`等属性。 9. **CSSOM与DOM的结合**:CSS Object Model (CSSOM)是CSS的DOM表示,可以与...

    javascript_DOM操作.rar

    7. **DOM遍历**:`parentNode`、`childNodes`、`firstChild`、`lastChild`等属性帮助我们遍历DOM树。此外,`previousSibling`和`nextSibling`则可以访问相邻的兄弟节点。 8. **DOM事件流**:DOM事件流包括捕获阶段...

    JavaScript DOM编程艺术 第2版 及源码

    7. **DOM遍历与搜索**:理解如何遍历DOM树,以及使用`parentNode`、`childNodes`、`nextSibling`、`previousSibling`等属性进行元素查找,对于高效地操作DOM至关重要。 8. **DOM性能优化**:书中还会探讨如何避免...

    JAVASCRIPT.ppt

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它主要负责实现客户端的交互效果和动态功能。在JavaScript中,DOM(Document Object Model)模型是一个关键的概念,它将HTML或XML文档表示为一个树形结构...

    xml.rar_javascript_javascript xml_xml javascript_xml文件

    - `childNodes`:获取所有子节点。 - `firstChild`/`lastChild`:获取第一个或最后一个子节点。 - `parentNode`:获取父节点。 - `appendChild()`/`removeChild()`/`replaceChild()`:添加、移除或替换节点。 6...

    javascript_DOM操作

    5. **遍历DOM**: `childNodes` 和 `children` 属性可以获取元素的子节点列表,`parentNode` 返回当前节点的父节点。`nextSibling` 和 `previousSibling` 可以获取相邻的兄弟节点。 6. **事件处理**: `...

    javascript DOM高级程序设计源码

    3. **DOM遍历**:理解节点树的结构,学习如何遍历节点,如`parentNode`、`childNodes`、`firstChild`、`lastChild`等属性,以及`previousSibling`和`nextSibling`方法。 4. **CSS操作**:通过JavaScript改变元素的...

Global site tag (gtag.js) - Google Analytics