`

js中的NODE

IE 
阅读更多
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> 
分享到:
评论

相关推荐

    Node.js(node-v16.15.1-win-x86.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1.pkg)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-win-x64.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1.tar.gz 源码)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-x64.msi)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js-Node.jsforMobileApps是用于Android和iOS的完整版Node.js运行时

    标题中的“Node.js-Node.js for Mobile Apps”指的是将Node.js环境移植到移动设备上,使得开发者能够在Android和iOS平台上直接运行Node.js应用程序。这一技术的出现极大地拓展了JavaScript的适用范围,不再局限于Web...

    Node.js(node-v16.15.1-x86.msi)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    服务器端JavaScript之Node.js

    在当今的Web开发领域,JavaScript不再仅仅局限于浏览器中的客户端编程,而是通过Node.js拓展到了服务器端。Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者使用JavaScript编写服务器端应用,极...

    Node.js(node-v16.15.1-linux-arm64.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    node.js14.18.3版本下载

    Node.js 是一个开源、跨平台的 JavaScript 运行环境,它允许开发者在服务器端执行 JavaScript 代码。Node.js 使用 V8 引擎,这是 Google 为 Chrome 浏览器开发的高性能 JavaScript 和 WebAssembly 引擎。Node.js 的...

    Node.js(node-v16.15.1-linux-armv7l.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js英文书籍2015出版共9本(一次下载)

    Full Stack Javascript - Learn Backbone.js, Node.js and MongoDB (APress 2015).epub Learning Node.js for Mobile Application Development (Packt 2015).pdf Microsoft Press Node.js for .NET Developers (2015...

    nodered加载外部js的使用

    nodered加载外部js的使用

    Node.js(node-v16.15.1-linux-s390x.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-darwin-arm64.tar.gz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js Javascript运行环境(runtime environment)

    Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好...

    Node.js(node-v16.15.1-aix-ppc64.tar.gz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    node.js(v16.16.0) 安装包

    Node.js 是一个开源、跨平台的 JavaScript 运行环境,它让开发者可以在服务器端执行 JavaScript 代码。Node.js 使用了 Google V8 引擎,这个引擎是为 Chrome 浏览器设计的,因此 Node.js 具有高性能和高效性的特点。...

    node-v12.18.3-x64_nodejs_Node.js_

    标题中的“node-v12.18.3-x64_nodejs_Node.js_”指的是Node.js的一个特定版本,即v12.18.3,适用于64位操作系统。Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码...

    Node.js(node-v16.15.1-linux-ppc64le.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

Global site tag (gtag.js) - Google Analytics