您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页JavaScriptDOM元素常见操作详解【添加、删除、修改等】

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

来源:爱go旅游网
JavaScriptDOM元素常见操作详解【添加、删除、修改

等】

本⽂实例讲述了JavaScript DOM元素常见操作。分享给⼤家供⼤家参考,具体如下:DOM概念

DOM(Document Object Model):⽂档对象模型。通过开发者⼯具的Elements标签页可以查看

通过开发者⼯具的Sources标签页也可以观察到整个⽂档是有⼀系列节点整个⽂档是由⼀系列节点对象组成的⼀棵树。

节点(Node)包括元素节点(1)、属性节点(2)、⽂本节点(3)(1..2..3..代表节点类型)_

var th1= document.getElementById(\"th1\");alert(th1.nodeType);alert(th1.nodeName);alert(th1.nodeValue);

th1代表⼀个元素节点(nodeType=1),nodeName就是标签名(th),元素节点的nodeValue=null。

var attr1=th1.getAttributeNode(\"name\");alert(attr1.nodeType);alert(attr1.nodeName);alert(attr1.nodeValue);

getAttributeNode⽅法是获取元素的属性节点,此时输出的节点类型为属性节点(2),节点名称就是属性名(name),节点值就是属性值(sex)

var txtl = th1.firstChild;alert(txtl.nodeType);alert(txtl.nodeName);alert(txtl.nodeValue)

txt1是⼀个⽂本节点(3),节点名称固定就是#text,节点值就是⽂本内容。获取元素

(1)getElementByid

根据元素的id属性来获取元素,获取到的是⼀个元素。(2)getElementsByTagName

根据标签名来获取元素,结果是⼀个元素集合。(3)getElementsByClassName

根据class属性来获取元素,结果是⼀个元素集合。(4)getElementsByName

根据name属性来获取元素,结果是⼀个元素集合。

总结:获取元素可以根据标签名获取、也可以根据id、name、class属性来获取。根据id属性获取的结果是⼀个元素,⽽其它的获取的是⼀个集合。

document对象⽀持以上四种,⽽element对象仅⽀持getElementsByTagName和getElementsByClassName。修改元素(1)修改内容

function fun(){

//获取到指定元素

var p1 = document.getElementById(\"p1\"); p1.innerText = \"我被单击了!\";}

通过.innerText属性可读取或设置标签的内容⽂本

function fun(){

//获取到指定元素

var p1 = document.getElementById(\"p1\"); p1.innerHTML = \"我被单击了!
换⾏了\";}

也可以通过innerHTML属性获取或设置内容⽂本

俩者的区别:innerHTML会按照HTML规则解析⽂本,⽽innerText只是当做普通⽂本内容。(1) 修改样式

A.xxx.style.属性名=“值”

B.xxx.classname=“…”(相当于修改了class的属性)

修改样式测试

添加删除元素

(1)CreateElement建⼀个元素节点

CreateElement(\"p\")创建⼀个段落

(2)createTextNode创建⼀个⽂本节点

createTextNode(\"⽂本内容\"),创建⼀个值为“⽂本内容”的⽂本节点.

(3)appendChild添加⼦节点(4)removeChild 删除⼦节点动态添加

动态删除

第1段落

第2段落

第3段落

第4段落

这种⽅法是分别找到⽗节点和要删除的节点,然后执⾏删除操作。该⽅法的⼀个前提是知道⽗节点是谁那么如果并不知道⽗节点是谁,该如何删除呢

p2.parentNode.removeChild(p2);

这个⽅法并不需要⽗节点是谁动态的添加和删除:

动态添加和动态删除,删除动态添加的奇数段落

思路1:获取div1 下的所以段落,遍历所以的段落,将序号为奇数的段落删除。

function del(){

var div1 = document.getElementById(\"div1\"); var paras = div1.getElementsByTagName(\"p\"); for(var i in paras){ if((i+1)%2 == 1){

div1.removeChild(paras[i]); } }}

这种在初始时是可以的,但是随着动态添加或删除的进⾏,后⾯的结果就不对了。因为动态删除操作就影响了原来的顺序,⽽程序是按照序号去判断奇偶性,所以出现误判

思路2:添加通过设置class属性,然后通过getElementsByclassName来获取奇数⾏

(也可以从后往前删)

导航

Document:是根节点ParentNode:获取⽗节点childNodes:获取所有⼦节点firstChild:第⼀个⼦节点lastChlid:获取最后⼀个⼦节点

第⼀段第⼀句第⼆句

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》希望本⽂所述对⼤家JavaScript程序设计有所帮助。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务