概念:DOM 文档对象模型(必考),jQuery Dom应该是之前的DOM加了个jQuery的封装。

分类:DOM操作分为三类: DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById(),js。 HTML-DOM:用于处理HTML文档,如document.forms CSS-DOM:用于操作CSS,如element.style.color="green"

jQuery对JavaScript中的DOM操作进行了封装。

jQuery中的DOM操作

4.1 样式操作

之前的样式设置: 选择器对象.css('属性','值') 比如:

$("p").css("color",'red')

增加样式:

$("p").addClass('bgStyle')

toggle:模拟连续点击;

toggleClass:如果存在就删除一个类,如果不存在,则添加这个样式。

 

4.2 追加节点

语法 功能
append(content) $(A).append(B)表示将子元素B追加到A中
prepend(content) $(A). prepend (B)表示将子元素B前置插入到A中
before(content) $(A). before (B)表示将B插入至A之前
after(content) $(A).after (B)表示将B插入到A之后
 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title>追加节点</title>
         <style>
             @import url("css/games.css")
         </style>
         <script src="js/jquery-1.12.4.min.js"></script>
         <script>
             $(function(){
                 //在按钮上单击的时候,进行操作;
                 $("#app").click(function(){
                     //操作的选择器对象是ul无序列表;
                     //后置:$(".gameList").append("<li>王者范.</li>")
                     //加到了ul的子元素li列表的后面;
                     //$(".gameList").prepend("<li>雨鑫战神</li>")
                     //before after
                     //before:在当前节点之前,增加一个元素,不属于当前节点。
                     //$(".gameList").before("<ul><li>海文泽拉斯</li></ul>")
                     $(".gameList").after("<ul><li>海文泽拉斯</li></ul>")
                 })
                 
             })
         </script>
     </head>
     <body>
         <div class="cont">
             <ul class="gameList">
                 <li>三星老船长</li>
                 <li>艾泽拉斯</li>
                 <li>起拉希姆</li>
             </ul>
         </div>
         <button id="app">追加</button><!--用一个按钮来做测试,更简单-->        
     </body>
 </html>
 ​

4.3 节点操作函数

选取的是比较重要的节点操作函数。

语法 功能
remove() 删除节点
empty() 清空节点内容
replaceWith() 替换节点
clone() 复制节点
 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title>操作节点</title>
         <style>
             @import url("css/games.css")
         </style>
         <script src="js/jquery-1.12.4.min.js"></script>
         <script>
             $(function(){
                 //在按钮上单击的时候,进行操作;
                 $("#app").click(function(){
                     //1.删除节点的操作;删除某个节点:现在要删除艾泽拉斯;
                     //$(".gameList li:eq(1)").remove();
                     //2.清空节点内容:是删除吗???相当于设置了html('')
                     // $(".gameList li:eq(1)").empty();
                     //3.replaceWith:需要注意一下;如果不成可以加$("<li>四星小船长</li>")
                     // $(".gameList li:eq(1)").replaceWith("<li>四星小船长</li>")
                     //4.克隆:clone(),我们使用的时候就不加参数了.
                     //首先$(".gameList li:eq(1)").clone():克隆;
                     //第二步:追加到$(".gameList")最后;
                     $(".gameList").prepend($(".gameList li:eq(1)").clone());                    
                 })              
             })
         </script>
     </head>
     <body>
         <div class="cont">
             <ul class="gameList">
                 <li>三星老船长</li><!--li序号:0-->
                 <li><a href='#'>艾泽拉斯</a></li><!--li序号:1-->
                 <li>起拉希姆</li><!--li序号:2-->
             </ul>
         </div>
         <button id="app">克隆</button><!--用一个按钮来做测试,更简单-->        
     </body>
 </html>
 ​

4.4属性节点

首先要了解什么是属性节点。

<img src='图片路径' title='超级炫图片'/

src,title就是img的属性,在DOM里面就是属性节点。

语法 功能
attr() 获取属性节点
attr({name1:value1,..n,nameN:valueN}) 设置属性节点的多个属性的值
removeAttr(属性名) 删除指定的属性节点
 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title>操作节点</title>
         <style>
             @import url("css/games.css")
         </style>
         <script src="js/jquery-1.12.4.min.js"></script>
         <script>
             $(function(){
                 //在按钮上单击的时候,进行操作;
                 $("#app").click(function(){
                     //来获取一下src,这个图片的路径信息;好处:可以得到路径信息,
                     //将来可以修改.
                     alert($("img").attr('src'));
                     //设置图片的路径信息;attr('属性','值')
                     //$("img").attr('src','img/2aa.jpg');
                     
                     //升级:男变女了,加样式:
                     $("img").attr('src','img/2aa.jpg').addClass('mm');
                     //删除样式:这个需要在查看器来看一下。
                     $("img").removeAttr('title');
                 })              
             })
         </script>
     </head>
     <body>
         <div class="cont">
             <img src="img/men.jpg" title="纯爷们"/>
             <ul class="gameList">
                 <li>三星老船长</li><!--li序号:0-->
                 <li><a href='#'>艾泽拉斯</a></li><!--li序号:1-->
                 <li>起拉希姆</li><!--li序号:2-->
             </ul>
         </div>
         <button id="app">属性节点的操作</button><!--用一个按钮来做测试,更简单-->       
     </body>
 </html>
 ​

 

4.5 遍历函数

实际它属性节点的查找:

复习:first() last() sibings()都是查找;

语法 功能
each() 遍历节点
 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title>追加节点</title>
         <style>
             @import url("css/games.css")
         </style>
         <script src="js/jquery-1.12.4.min.js"></script>
         <script>
             $(function(){
                 //在按钮上单击的时候,进行操作;
                 /* $("#app").click(function(){
                     //当我们在这个按钮上进行单击的时候,逐个获取li的信息内容
                     //然后打印输出;
                     //each的前面是需要逐个遍历的选择器对象;当前是li,所以:$("li")
                     $("li").each(function(){
                         let str=$(this).text();//text()注意;
                         //alert(str);
                         //变了:追加到span
                         $("span").append(str);
                     })
                 }) */
                 //each前面的选择器一定是有好几个的元素对象; 
                 $("#app").click(function(){
                     //下面要遍历+-* /四个按钮,得到其内容;
                     $(".calc").each(function(){
                         alert($(this).text());//就可以根据得到+-*/来完善之前的计算器了;
                         // let op=$(this).text();
                         // switch(op){
                         //  case '+':加操作;break;
                         }
                     })
                 })
                 
             })
         </script>
     </head>
     <body>
         <div class="cont">
             <ul class="gameList">
                 <li>三星老船长</li>
                 <li>艾泽拉斯</li>
                 <li>起拉希姆</li>
             </ul>
         </div>
         <span></span>
         <button id="app">遍历按钮</button><!--用一个按钮来做测试,更简单-->  
         <button class="calc">+</button class="calc"><button>-</button>
         <button class="calc">*</button><button class="calc">/</button>
     </body>
 </html>
 ​

总结:

1.toggleClass():有样式,则删除,没有则增加样式;

2.追加节点有4个,2个子元素街边;2个兄弟元素级别;

3.节点操作就是删除、清空、复制、替换(删改)

4.属性节点:attr() attr('name','name)

5.节点的遍历,注意使用:$("选择器").each()