《jQuery、jQuery UI及jQuery Mobile技巧与示例》——3.10 技巧:添加和分离元素

简介: 离元素除了把元素移至不同的位置外,还有一个重要的使用场景是需要对HTML树执行大量的操作。先分离元素再操作它时需要的系统资源较少。值得注意的是,detach()函数会保留所有和分离元素关联的jQuery数据(包括函数和对象)。

本节书摘来自异步社区《jQuery、jQuery UI及jQuery Mobile技巧与示例》一书中的第3章,第3.10节,作者:【荷】Adriaan de Jonge , 【美】Phil Dutson著,更多章节内容可以访问云栖社区“异步社区”公众号查看

3.10 技巧:添加和分离元素

可以把元素从HTML树上分离(detach)出来,然后把它重新添加(reattach)到不同的位置。代码清单3-10演示了如何做到这一点。

代码清单3-10 使用appendTo()和detach()在DOM树中移动元素

00 <!DOCTYPE html>
01 
02 <html lang="en">
03 <head>
04  <title>The attach() and detach() function</title>
05  <style>
06  /* 请将下列代码移至一个外部的
07    .css文件 */
08  .detaching button.attach {
09   display: none;
10  }
11  .attaching button.detach {
12   display: none;
13  }
14  </style>
15 </head>
16 <body class="detaching">
17 
18 <div> 
19  <button class="attach">Attach</button>
20  <button class="detach">Detach</button>
21  <span>First element</span>
22 </div>
23 <div> 
24  <button class="attach">Attach</button>
25  <button class="detach">Detach</button>
26  <span>Second element</span>
27 </div>
28 <div> 
29  <button class="attach">Attach</button>
30  <button class="detach">Detach</button>
31  <span>Third element</span>
32 </div>
33 <div> 
34  <button class="attach">Attach</button>
35  <button class="detach">Detach</button>
36  <span>Fourth element</span>
37 </div>
38 <div> 
39  <button class="attach">Attach</button>
40  <button class="detach">Detach</button>
41  <span>Fifth element</span>
42 </div>
43 
44 
45 <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
46 
47 <script>
48 // 请将下列代码移至一个外部的.js文件中
49 $(document).ready(function() {
50  var el;
51 
52  $('.detach').click(function() {
53   el = $(this).parent().children('span:first').remove();
54   $('body').removeClass('detaching').addClass('attaching');
55  });
56  $('.attach').click(function() {
57   el.appendTo($(this).parent());
58   $('body').removeClass('attaching').addClass('detaching');
59  });
60  
61 });
62 </script>
63 </body>
64 </html>

分离元素除了把元素移至不同的位置外,还有一个重要的使用场景是需要对HTML树执行大量的操作。先分离元素再操作它时需要的系统资源较少。值得注意的是,detach()函数会保留所有和分离元素关联的jQuery数据(包括函数和对象)。这在把元素重新添加到DOM时尤其有用,这也是上面的技巧能够移除内容然后重新添加到文档中而没有影响的原因。

相关文章
|
2月前
|
JavaScript
jQuery - 添加元素
通过 jQuery,可以很容易地添加新元素/内容。
47 10
|
13天前
|
JavaScript
超炫酷UI效果的jQuery滑块插件
超炫酷UI效果的jQuery滑块插件
27 0
|
3月前
|
JavaScript 前端开发
jQuery - 添加元素
jQuery - 添加元素
25 2
|
3月前
|
JavaScript 前端开发
jQuery - 添加元素
jQuery - 添加元素
30 6
|
4月前
|
JavaScript
分别用jquery和js修改页面元素
分别用jquery和js修改页面元素
42 2
|
4月前
|
前端开发 JavaScript
jQuery改变元素的方法
jQuery改变元素的方法
29 1
|
4月前
|
JavaScript
H-ui JQuery 给单选按纽赋值不生效
H-ui JQuery 给单选按纽赋值不生效
41 0
H-ui JQuery 给单选按纽赋值不生效
|
4月前
|
JavaScript Java
分别使用java script和jQuery添加页面元素
分别使用java script和jQuery添加页面元素
36 0
|
4月前
|
前端开发 开发工具 git
|
4月前
|
JavaScript
JQuery——动态添加元素导致点击事件失效
JQuery——动态添加元素导致点击事件失效
45 0