《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时尤其有用,这也是上面的技巧能够移除内容然后重新添加到文档中而没有影响的原因。

相关文章
|
4月前
|
开发者 容器
【HarmonyOS Next之旅】ArkTS语法(二) -> 动态构建UI元素
当开发者创建自定义组件,并想对该组件添加特定功能时(例如在自定义组件中添加一个点击跳转操作)。为解决此问题,引入了@BuilderParam装饰器,此装饰器修饰的属性值可为@Builder装饰的函数,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的功能。@BuilderParam装饰器用于修饰自定义组件内函数类型的属性(例如:@BuilderParam noParam: () => void),并且在初始化自定义组件时被@BuilderParam修饰的属性必须赋值。
126 11
|
3月前
|
JavaScript 测试技术 Python
UI自动化测试中的元素等待机制解析
在UI自动化测试中,元素定位失败常因页面存在iframe或缺乏合理等待机制。本文解析三种等待策略及其应用场景:显式等待可精确控制单个元素等待条件,支持自定义轮询;隐式等待全局生效,适合简单页面加载;强制等待仅用于临时调试,正式脚本慎用。通过对比三者执行精度、资源消耗及适用场景,帮助选择最优策略,提升测试效率与稳定性。
|
11月前
|
JavaScript
jQuery - 添加元素
通过 jQuery,可以很容易地添加新元素/内容。
101 11
|
9月前
|
JavaScript
超炫酷UI效果的jQuery滑块插件
超炫酷UI效果的jQuery滑块插件
81 0
|
12月前
|
JavaScript 前端开发
jQuery - 添加元素
jQuery - 添加元素
68 2
|
JavaScript 前端开发
jQuery - 添加元素
jQuery - 添加元素
73 6
|
JavaScript
分别用jquery和js修改页面元素
分别用jquery和js修改页面元素
130 2
|
前端开发 JavaScript
jQuery改变元素的方法
jQuery改变元素的方法
60 1
|
JavaScript
H-ui JQuery 给单选按纽赋值不生效
H-ui JQuery 给单选按纽赋值不生效
85 0
H-ui JQuery 给单选按纽赋值不生效
|
JavaScript Java
分别使用java script和jQuery添加页面元素
分别使用java script和jQuery添加页面元素
68 0