jQuery知识点总结(第五天)

节点的操作和数据库操作一样,无非是增、删、改、查。

今天总结删除节点、复制节点、替换节点、与包裹节点

 



删除节点:

如果文档中一个元素多余,那么就需要删除掉。jQuery提供了三种删除节点的方法。分别是remove()   、  detach()    、   empty();

           remove:

1 <body>
2     <ul class="bigul">
3         <li class="smchild">我这么可爱你不要我了。</li>
4         <li class="smchild">我的爸爸ul最宠爱我</li>
5     </ul>
6     <script>
7         $(".bigul :first-child").remove();
8     </script>
9 </body>

               detach:

1 <body>
2     <ul class="bigul">
3         <li class="smchild">我这么可爱你不要我了。</li>
4         <li class="smchild">我的爸爸ul最宠爱我</li>
5     </ul>
6     <script>
7         $(".bigul :first-child").detach();
8     </script>
9 </body>

              

              empty:

 

1 <body>
2     <ul class="bigul">
3         <li class="smchild">我这么可爱你不要我了。</li>
4         <li class="smchild">我的爸爸ul最宠爱我</li>
5     </ul>
6     <script>
7         $(".bigul :first-child").empty();
8     </script>
9 </body>

这里必须注意的是,empty()并不是删除节点,只是清除节点中的内容。下面是empty()执行后的页面效果。

  

  remove()   、  detach()    、   empty() 辨析:

 

       remove()   和   detach()的共同点都是可以删除节点。更更严谨更科学的说法就是【剪切】,并没有真正的删除掉元素,这些元素还可以重新插入到其他的地方。不同点在于,remove() 【剪切】节点后,该节点上绑定的事件同时也被销毁,但是detach()  所【剪切】的节点上所绑定的事件都能够保留。

      empty() 并不是删除,只清楚元素的内容。相当于把contains中内容替换成了null。

      删除节点之后,可以使用appendTo()插入到DOM树中。

       1 $(".bigul :first-child").remove().appendTo('你的元素内'); 

      当然如果你是要剪切元素。可以直接使用appendTo:

       1 $(".bigul :first-child").appendTo('你的元素内'); 

      上下这两种写法最终的效果都是一样的。

 

      复制节点(克隆节点):

      看到克隆,就想起了那只多莉小绵羊,clone这个单词也是克隆的音译,比较好记忆。

      clone()的用法比较简单,但是作用很大。

      clone(boolean) 

      clone的boolean默认是false。克隆节点的时候,该元素的所绑定的事件对象将不克隆,只克隆节点本身。

      clone的boolean可以设置为true,克隆的时候,该元素所绑定的事件对象,将会被带到克隆的副本上去,同等具有原节点的功能。

 

      替换节点:

      替换节点用的也比较多。对于后台的数据处理特别有用,利用的好,可以实现一个页面增删改查无跳转,当然仅仅一个clone是不够的,需要后面的知识辅助,例如Ajax。

      replaceWith  与  replaceAll

      这两者作用是一样的,还是为了方便jQuery的链式操作。

      $('A').replaceWith('B')   把A替换成B;

      $('A').replaceAll('B')      把B替换成A;

 

  包裹节点:

      包裹节点,简称为【穿内衣】 、 【穿外套】  、【穿大衣】

      穿内衣:wrapInner

      执行代码之前的html结构:

     

 1 <body>
 2     <ul class="bigul">
 3         <li class="smchild">我是一个小美女</li>    
 4         <li class="smchild">我是一个小美女</li>    
 5         <li class="smchild">我是一个小美女</li>    
 6     </ul>
 7     <script>
 8         $(".smchild").wrapInner("<b>对呀!</b>");
 9     </script>
10 </body>

    

       执行wrapInner()代码之后html结构:

 

 1 <body>
 2     <ul class="bigul">
 3         <li class="smchild"><b>对呀!我是一个小美女</b></li>    
 4         <li class="smchild"><b>对呀!我是一个小美女</b></li>    
 5         <li class="smchild"><b>对呀!我是一个小美女</b></li>    
 6     </ul>
 7     <script>
 8         $(".smchild").wrapInner("<b>对呀!</b>");
 9     </script>
10 </body>

 

  穿外套:

     执行wrap代码后的html结构:

 1 <body>
 2     <ul class="bigul">
 3         <b>对呀!<li class="smchild">我是一个小美女</li></b>    
 4         <b>对呀!<li class="smchild">我是一个小美女</li></b>    
 5         <b>对呀!<li class="smchild">我是一个小美女</li></b>    
 6     </ul>
 7     <script>
 8         $(".smchild").wrap("<b>对呀!</b>");
 9     </script>
10 
11 </body>

  

  穿大衣:

  执行wrapAll后的html结构:

 1 <body>
 2     <ul class="bigul">
 3           <b>对呀!
 4                    <li class="smchild">我是一个小美女</li>
 5                    <li class="smchild">我是一个小美女</li>
 6                    <li class="smchild">我是一个小美女</li>
 7          </b>            
 8     </ul>
 9     <script>
10         $(".smchild").wrapAll("<b>对呀!</b>");
11     </script>
12 </body>

 


 

 

今天总结先进行到这里,有内容有错误或者有疑问,评论里提问。

 

  

 

     

      

     

 

 

 

 

posted @ 2015-07-22 23:05  roverliang  阅读(281)  评论(0编辑  收藏  举报