JavaScript的DOM操作(节点操作)
|
创建节点 2、创建文本节点 3、插入节点到最后 4、插入节点到目标节点的前面 node.parentNode.insertBefore(node, node.parentNode.firstChild); 5、复制节点 6、删除节点 7、替换节点 8、设置节点属性 9、获取节点属性 10、判断元素是否有子节点 最后是DOM的属性: nodeName - 节点的名字; |
JavaScript操作DOM 建立增加删除克隆访问节点示例:
1. getElementById(id)
这是通过id来访问某一元素,最常用的之一,例:
<html>
<body>
<div id="myid">
test
</div>
<script language="javascript">
alert(document.getElementById("myid").innerHTML);
</script>
</body>
</html>
注意点:如果元素的ID不是唯一,则会取得第一个该ID名称的元素
2. getElementsByName(name)
这是通过name来取得某一堆元素(作为数组),看 Element后面有个小s就知道了,ID是HTML文档中要求唯一的,name可以不是唯一,如checkbox、radio等地方会用到多个 input用同一个name来识别是否为同党。对了,getElementsByName(name)仅用于取得input、radio、 checkbox等元素,如<inputname="myradio" type="radio" />
3. getElementsByTagName(tagname) 看这方法就知道这也是取得某一堆元素(作为数组),是通过TagName也就是标签名来取得。你可以遍历这个数组获得每一个单独的元素。当一个DOM结构很大时,可以通过它来有效地缩小搜查范围。
<html>
<head>
<script>
function test()
{
testall=document.getElementsByTagName("body");
testbody=testall.item(0);
//获得所有tagName是body的元素(当然每个页面只有一个)
testall=testbody.getElementsByTagName("p");
// 获得body子元素种的所有P元素
testnode=testall.item(1);
// 获得第二个P元素
alert(testnode.firstChild.nodeValue);
//显示这个元素的文本
}
</script>
</head>
<body>
<p>hi</p>
<p>hello</p>
<script language="javascript">
test();
</script>
</body>
</html>
4. appendChild(node)
向当前的元素(应该叫对象比较恰当)追加节点。
<html>
<body>
<head>
</head>
<div id="test"></div>
<script type="text/javascript">
varnewdiv=document.createElement("div")
varnewtext=document.createTextNode("A newdiv")
newdiv.appendChild(newtext)
document.getElementById("test").appendChild(newdiv)
</script>
</body>
</html>
刚才我在第一个例子中为了显示出内容,用了innerHTML,刚才看到文章才得知innerHTMl不属于DOM。
5. removeChild(childreference)
删除当前节点的子节点,返回被删除的节点。
这个被删除的节点可以被插入到别的地方
<html>
<body>
<div id="parent"><div id="child">Achild</div></div>
<script language="javascript">
varchildnode=document.getElementById("child")
varremovednode=document.getElementById("parent").removeChild(childnode)
</script>
</body>
</html>
6. cloneNode(deepBoolean)
复制并返回当前节点的复制节点,复制节点是一个孤立节点,它复制了原节点的属性,在把这个新节点加入到document前,根据需要修改ID属性确保其ID的唯一。
这个方法支持一个布尔参数,当deepBoolean设置true时,复制当前节点的所有子节点,包括该节点内的文本。
<html>
<body>
<p id="mynode">test</p>
<script language="javascript">
p=document.getElementById("mynode")
pclone =p.cloneNode(true);
p.parentNode.appendChild(pclone);
</script>
</body>
</html>
7. replaceChild(newChild, oldChild)
把当前节点的一个子节点换成另一个节点
<html>
<body>
<div id="mynode2">
<span id="orispan">span</span>
</div>
<script language="javascript">
var orinode=document.getElementById("orispan");
var newnode=document.createElement("p");
var text=document.createTextNode("test ppp ");
newnode.appendChild(text);
document.getElementById("mynode2").replaceChild(newnode,orinode);
</script>
</body>
</html>
javaScript操作DOM 建立 增加 删除 克隆 访问节点示例:
|
1. getElementById(id) 这是通过id来访问某一元素,最常用的之一,例: <html> <body> <div id="myid"> test </div> <script language="javascript"> alert(document.getElementById("myid").innerHTML); </script> </body> </html> 注意点:如果元素的ID不是唯一,则会取得第一个该ID名称的元素 2. getElementsByName(name) 这是通过name来取得某一堆元素(作为数组),看 Element后面有个小s就知道了,ID是HTML文档中要求唯一的,name可以不是唯一,如checkbox、radio等地方会用到多个 input用同一个name来识别是否为同党。对了,getElementsByName(name)仅用于取得input、radio、 checkbox等元素,如<input name="myradio" type="radio" /> 3. getElementsByTagName(tagname) 看这方法就知道这也是取得某一堆元素(作为数组),是通过TagName也就是标签名来取得。你可以遍历这个数组获得每一个单独的元素。当一个DOM结构很大时,可以通过它来有效地缩小搜查范围。 <html> <head> <script> function test() { testall=document.getElementsByTagName("body"); testbody=testall.item(0); //获得所有tagName是body的元素(当然每个页面只有一个) testall=testbody.getElementsByTagName("p");// 获得body子元素种的所有P元素 testnode=testall.item(1); // 获得第二个P元素 alert(testnode.firstChild.nodeValue); //显示这个元素的文本 } </script> </head> <body> <p>hi</p> <p>hello</p> <script language="javascript"> test(); </script> </body> </html> 4. appendChild(node) <html> <body> <head> </head> <div id="test"></div> <script type="text/javascript"> var newdiv=document.createElement("div") var newtext=document.createTextNode("A new div") newdiv.appendChild(newtext) document.getElementById("test").appendChild(newdiv) </script> </body> </html> 刚才我在第一个例子中为了显示出内容,用了innerHTML,刚才看到文章才得知innerHTMl不属于DOM。 5. removeChild(childreference) 删除当前节点的子节点,返回被删除的节点。 <html> <body> <div id="parent"><div id="child">A child</div></div> <script language="javascript"> var childnode=document.getElementById("child") var removednode=document.getElementById("parent").removeChild(childnode) </script> </body> </html> 6. cloneNode(deepBoolean) 复制并返回当前节点的复制节点,复制节点是一个孤立节点,它复制了原节点的属性,在把这个新节点加入到document前,根据需要修改ID属性确保其ID的唯一。 这个方法支持一个布尔参数,当deepBoolean设置true时,复制当前节点的所有子节点,包括该节点内的文本。 <html> <body> <p id="mynode">test</p> <script language="javascript"> p=document.getElementById("mynode") pclone = p.cloneNode(true); p.parentNode.appendChild(pclone); </script> </body> </html> 7. replaceChild(newChild, oldChild) 把当前节点的一个子节点换成另一个节点 <html> <body> <div id="mynode2"> <span id="orispan">span</span> </div> <script language="javascript"> var orinode=document.getElementById("orispan"); var newnode=document.createElement("p"); var text=document.createTextNode("test ppp "); newnode.appendChild(text); document.getElementById("mynode2").replaceChild(newnode, orinode); </script> </body> </html> |
JavaScript的DOM操作(节点操作)的更多相关文章
- JavaScript HTML DOM 元素(节点)
JavaScript HTML DOM 元素(节点) 创建新的 HTML 元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素 ...
- JavaScript之DOM创建节点
上几篇文章中我们罗列了一些获取HTML页面DOM对象的方法,当我们获取到了这些对象之后,下一步将对这些对象进行更改,在适当的时候进行对象各属性的修改就形成了我们平时看到的动态效果.具体js中可以修改D ...
- JavaScript HTML DOM元素节点常用操作接口
在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点的类 ...
- JavaScript 关于DOM的事件操作
一.JavaScript的组成 JavaScript基础分为三个部分: ECMAscript:JavaScript的标准语法.包括变量,表达式,运算符,函数,if语句,for语句等. DOM:文档对象 ...
- DOM之节点操作
DOM提供了很多实用的API,这些API让我们可以轻松的访问HTML文档.所谓API(应用程序接口),简单来说,就是让我们可以直接使用它访问程序的一些属性或方法,而不用了解程序内部的运作过程和原理. ...
- dom的节点操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 深入理解DOM节点操作
× 目录 [1]创建节点 [2]插入节点 [3]移除节点[4]替换节点[5]复制节点 前面的话 一般地,提起操作会想到“增删改查”这四个字,而DOM节点操作也类似地对应于此,接下来将详细介绍DOM的节 ...
- JS Dom节点操作demo!
通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ r ...
- js 节点 document html css 表单节点操作
js 节点 document html css 表单节点操作 节点操作:访问.属性.创建 (1)节点的访问:firstChild.lastChild.childNodes.parentChild(父子 ...
随机推荐
- Django 之 权限系统(组件)
参考: http://www.cnblogs.com/yuanchenqi/articles/7609586.html
- 卷积神经网络(CNN)的训练及代码实现
本文部分内容来自zouxy09的博客.谢谢.http://blog.csdn.net/zouxy09/article/details/9993371 以及斯坦福大学深度学习教程:http://ufld ...
- SQL语句中的Having子句与where子句
一.介绍 聚合函数如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条记录上.而通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于 ...
- ACM解题之(ZOJ 1094) Matrix Chain Multiplication
题目来源: 点击打开链接 题目翻译: 矩阵乘法问题是动态规划的典型例子. 假设你必须评估一个表达式,如A * B * C * D * E,其中A,B,C,D和E是矩阵.由于矩阵乘法是关联的,乘法运算的 ...
- LVS Nginx Haproxy对比
一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术. 具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了: 如果机器不少,可以 ...
- This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in问题
点击 Help > Install New Software. 在 Work with 的输入区域里, 输入: https://dl-ssl.google.com/android/eclipse ...
- 在freescale mx6q平台上添加spi资源
1:配置管脚为SPI功能 在board-mx6q_sabresd.h的最后添加,复制被重定义 (以添加SPI2为例) <span style="font-size:18px;" ...
- Shell编程之Linux信号及信号跟踪
一.Linux信号 1.什么是信号? Linux信号是由一个整数构成的异步消息,它可以由某个进程发给其他进程,也可以在用户按下特定键发生某种异常事件时,由系统发给某个进程. 2.信号列表 [root@ ...
- 连接池Connection timed out
当应用程序使用数据库连接池(或带服务程序的连接池)进行数据连接时,防火墙的设置有可能会导致连接出现超时或者被重置的问题.当从数据库读数据(或服务程序客户端读取数据)的时候 有可能会 Connectio ...
- 函数进阶之结合tornado
一.本篇博文内容 .协程函数 .面向过程编程 .递归和二分法 二.协程函数 协程函数:就是使用了yield表达式形式的生成器 首先函数的传参有几种? 三种: 1.实参形参传参 2.闭包的形式传参 3. ...