jQuery移动和复制dom节点实用DOM操作案例


Posted in Javascript onDecember 17, 2012

本文章简单的介绍了关于jQuery移动和复制dom节点程序实现,有需要学习的朋友可参考参考。

在做一个项目时,需要dom节点移动,如以下代码:

<div></div> 
<p></p>

需要把p标签移动到div标签里,经过测试发现,在jQuery中移动dom节点非常方便:
$('div').append($('p'))

这样即可把p标签移动到div标签里,千万不要写成这样:
$('div').append( $('p').html() )

这样只是把p标签里的内容复制到div标签里。

如果只是复制一份到div标签里,原来的标签还保留着,那么可以这么写:

$('div').append( $('p').clone(true))


$(function(){ 
$(".nm_ul li").click(function(){ 
$(this).clone(true).appendTo(".nm_ul"); // 复制当前点击的节点,并将它追加到<ul>元素 
}) 
});

而且当clone参数设置为true时还可以将按钮上绑定的事件一起复制到新按钮上

在clone()方法中传递了一个参数true,它的含义是复制元素的同时复制元素中所绑定的事件。因此该元素的副本也同样具有复制功能。如果不希望事件也被复制,则可以这么写:

$('div').append( $('p').clone())

移动节点
将页面上的一个节点移动到另外一个地方可以用jq的内部和外部插入方法(append,appendTo,prepend,prependTo,after,before,insertAfter,insertBefore),直接将选中的节点传递进去就可以实现移动
<button>Move Me!</button> 
<div id="box"></div> 
实例 
$("button").click(function(){ 
$(this).appendTo($("#box")); 
//或者用append 
$("#box").append(this); 
});

复制节点也是常用的DOM操作之一,例如很多购物网站的效果,用户不仅可以通过单击商品下方的“选择”按钮购买相应的产品,也可以通过鼠标拖动商品并将其放到购物车中。这个商品拖动功能就是用的复制节点,将用户选择的商品所处的节点元素复制一次,并将其跟随鼠标移动,从而达到购物效果。
HTML DOM结构如下:
<p class="nm_p" title="欢迎访问三水点靠木图书馆" >欢迎访问三水点靠木图书馆</p> 
<ul class="nm_ul"> 
<li title='PHP魔法'>简单易懂的PHP魔法</li> 
<li title='C魔法'>简单易懂的C魔法</li> 
<li title='JavaScript魔法'>简单易懂的JavaScript魔法</li> 
<li title='JQuery'>简单易懂的JQuery魔法</li> 
</ul>

如果单击<li>元素后需要再复制一个<li>元素,可以使用clone()方法来完成,先来看看效果:
效果演示
欢迎访问三水点靠木图书馆
简单易懂的PHP魔法
简单易懂的C魔法
简单易懂的JavaScript魔法
简单易懂的JQuery魔法
JQuery代码如下:
$(function(){ 
$(".nm_ul li").click(function(){ 
$(this).clone(true).appendTo(".nm_ul"); // 复制当前点击的节点,并将它追加到<ul>元素 
}) 
});

在页面中单击随便一项后,列表最下方出现该项的新节点。
复制节点后,被复制的新元素并不具有任何行为。如果需要新元素也具有复制功能(本例中是单击事件),可以使用如下JQuery代码:
$("ul li").click(function(){ 
$(this).clone(true).appendTo("ul"); // 注意参数true 
//可以复制自己,并且他的副本也有同样功能。 
})
Javascript 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
js兼容标准的表格变色效果
Jun 28 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
Oct 20 Javascript
jQuery1.6 类型判断实现代码
Sep 01 Javascript
扩展JS Date对象时间格式化功能的小例子
Dec 02 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
js生成随机数的方法实例
Oct 16 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
Jun 16 Javascript
vue-router实现编程式导航的代码实例
Jan 19 Javascript
vue-router源码之history类的浅析
May 21 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
TypeScript 内置高级类型编程示例
Sep 23 Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 #Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
Dec 17 #Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
Dec 17 #Javascript
如何让页面在打开时自动刷新一次让图片全部显示
Dec 17 #Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 #Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 #Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 #Javascript
You might like
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP如何使用Memcached
2016/04/05 PHP
php socket通信简单实现
2016/11/18 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
毕业生求职推荐信
2013/11/04 职场文书
学生就业推荐信
2013/11/13 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
SpringBoot快速入门详解
2021/07/21 Java/Android