第30天:DOM对象操作

简介: JS包括三部分:ECMAscript、DOM(文档对象)、BOM(浏览器对象)一、DOM(文档对象)DOM树节点(元素、属性、标签、标记等都是节点)二、访问节点documment.getElementById()documment.

JS包括三部分:ECMAscript、DOM(文档对象)、BOM(浏览器对象)

一、DOM(文档对象)
DOM树
节点(元素、属性、标签、标记等都是节点)

二、访问节点

documment.getElementById()
documment.getElementsByTagName()
documment.getElementsByClassName()
//主流浏览器支持,IE6、7、8不兼容

三、节点访问关系
1、父节点parentNode
2、兄弟节点:
下一个兄弟:
nextSibling  //IE6、7、8认识
nextElementSibling  //其他浏览器认识
同理:
上一个兄弟
previousSibling  //IE6、7、8认识
previousElementSibling  //其他浏览器认识

兼容写法
var one=document.getElementById("one");
var div=one.nextElementSibling||one.nextSibling;//先普通浏览器再IE
div.style.backgroundColor="red";

3、子节点
firstChild
firstElementChild
兼容:one.firstElementChild||one.firstChild
lastChild
lastElementChild  同上

4、孩子节点
childNodes 选出全部的孩子嫡出
childNodes:标准属性,返回指定元素的子元素集合,包括HTML节点,所有属性,文本节点
火狐、谷歌高版本会把换行也看作是子节点

利用 nodeType==1 时才是元素节点,通过这个来获取元素节点

5、children 选取所有的孩子,只包括元素节点(庶出)
IE6、7、8包含注释节点,这个要避免开,去掉注释

四、DOM节点操作
新建、插入、删除、克隆节点等等

1、创建节点
var div document.creatElement("li");//生成一个新的li标签

2、插入节点
(1)appendChild();添加孩子到某个盒子的最后面
(2)insertBefore(插入的节点,参照节点);两个参数必写
demo.insertBefore(test,childrens[0]);//放到第一个孩子的前面
如果第二个参数为null,则默认新生成的盒子放到最后面
demo.insertBefore(test,null);

3、移除节点
removeChild() ; //孩子节点
demo.removeChild(da);

4、克隆节点
cloneNode();
也就是复制节点
括号里面可以加参数,如果里面是true,深层复制,除了复制本盒子,还复制子节点
如果为false,浅层复制,只复制本节点,不复制子节点

案例:

1、孩子节点

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>孩子节点</title>
 6     <script>
 7         window.onload=function(){
 8             //childNodes用法
 9             /*var ul=document.getElementById("ul");
10             var childrens=ul.childNodes;//选择全部孩子
11             //alert(childrens.length);//7
12             for(var i=0;i<childrens.length;i++){
13                 if(childrens[i].nodeType==1){
14                     childrens[i].style.backgroundColor="blue";
15                 }
16             }*/
17             
18             //children用法
19             var ul=document.getElementById("ul");
20             var childrens=ul.children;//选择所有孩子,只有元素节点
21             alert(childrens.length);
22 
23         }
24     </script>
25 </head>
26 <body>
27 <ul id="ul">
28     <li>123456</li>
29     <li>123456</li>
30     <li>123456</li>
31 </ul>
32 </body>
33 </html>

2、DOM节点操作

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>DOM节点操作</title>
 6     <script>
 7         window.onload=function(){
 8             var demo=document.getElementById("demo");
 9             var childrens=demo.children;
10             //创建节点
11             var firstDiv=document.createElement("div");
12             //添加节点
13             demo.appendChild(firstDiv);
14             var test =document.createElement("div");
15             //children[0]就是xiongda
16             demo.insertBefore(test,childrens[0]);
17             //demo.insertBefore(test,null);//若无参照点,则为null,新添加的放到最后面
18 
19             //移除节点
20             var da=document.getElementById("xiongda");
21             demo.removeChild(da);
22 
23             //复制节点
24             var last= childrens[0].cloneNode();
25             demo.appendChild(last);
26             demo.parentNode.appendChild(demo.cloneNode(true));
27         }
28     </script>
29 </head>
30 <body>
31 
32     <div id="demo">
33         <div id="one"></div>
34         <div id="xiongda"></div>
35     </div>
36 <!--<nav></nav>-->
37 </body>
38 </html>

 

相关文章
|
5月前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
229 0
|
2月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
19 1
js之DOM 文档对象模型
|
2月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
48 1
|
2月前
|
JavaScript 前端开发 API
前端开发者的救赎:揭秘JQ对象与DOM元素的神秘转换术
【8月更文挑战第23天】在Web前端开发领域,jQuery(简称JQ)作为一款流行的JavaScript库,极大简化了HTML文档遍历、事件处理、动画及Ajax交互等操作。理解和掌握jQuery对象与DOM元素间的转换至关重要。
34 0
|
2月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
|
4月前
|
JavaScript 前端开发 UED
JavaScript基础-DOM操作:查找、创建、修改
【6月更文挑战第12天】本文介绍了DOM基础,包括查找元素(getElementById、getElementsByClassName等)、创建新节点(createElement、createTextNode)和修改节点(innerText、innerHTML、setAttribute等)。强调了易错点,如ID唯一性、性能考量和安全问题,并提供了代码示例。熟练掌握DOM操作对前端开发至关重要,但应注意性能优化,适时使用框架或库。
56 2
JavaScript基础-DOM操作:查找、创建、修改
|
4月前
|
JavaScript 前端开发
DOM操作有哪些方法可以改变元素的样式?
【6月更文挑战第30天】DOM操作有哪些方法可以改变元素的样式?
35 2
|
4月前
|
JavaScript 前端开发 开发者
DOM操作
【6月更文挑战第30天】DOM操作
32 1
|
4月前
|
JavaScript 前端开发 算法
虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。
【6月更文挑战第27天】虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。当状态改变,React不直接修改DOM,而是先构建新的虚拟DOM树。通过 diff 算法比较新旧树,找到最小变更,仅更新必要部分,提高性能,避免频繁DOM操作。虚拟DOM还支持跨平台应用,如React Native。它优化了更新流程,简化开发,并提升了用户体验。
39 1
|
3月前
|
JavaScript 前端开发 API
前端框架与库 - jQuery基础与DOM操作
【7月更文挑战第18天】jQuery 是一个简化JavaScript任务的库,以其“write less, do more”理念著称。核心功能包括DOM操作、事件处理和Ajax。DOM操作如选择元素(`$(&quot;p&quot;)`、`$(&quot;#myDiv&quot;)`、`$(&quot;.myClass&quot;)`)、创建及添加元素、修改属性和内容。事件处理如绑定(`click`)和触发(`trigger`)。常见问题涉及`$`符号冲突(使用`jQuery`代替)、异步加载管理和选择器性能优化。了解并规避这些问题能提升jQuery使用效率。
28 0