关于Jquery数据的克隆和写入

一,对比

对比原生的繁琐写入数据的方法,jquery在这方面优化了很多,它可以将一段数据先克隆,然后将这段数据再复制动态的写入到页面中,简化了很多代码。

二, 克隆

克隆节点是DOM的常见操作,jQuery提供一个clone方法,专门用于处理dom的克隆。
.clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。
clone方法比较简单就是克隆节点,但是需要注意,如果节点有事件或者数据之类的其他处理,我们需要通过clone(ture)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了。

<div></div>
<script type="text/javascript">
$('div').on('click' , function(){
            $('div').clone();//只克隆了结构,事件丢失
            $('div').clone(true);//结构、事件与数据都克隆
        })
</script>

最后关于两点:1,clone()方法时,在将它插入到文档之前,我们可以修改克隆后的元素或者元素内容;2,clone()方法是jQuery扩展的,只能处理通过jQuery绑定的事件与数据。

三,写入数据(data)

通过 data() 函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将被移除。
但是好在可以通过.clone()配合data可以完成动态的写入数据

下面是一个案例:

<ul class="ul1">
	<li class="list"><span class="box"></span><a href="#"></a><span></span></li>	
</ul>
<script type="text/javascript" src="jquery-1.11.3.js"></script>
<script type="text/javascript">
var hotlist = [
    {
    	title : '全球新冠肺炎确诊病例超500万',
    	hotnum : 483,
    	id : 1
    },{
    	title : '全国政协十三届三次会议闭幕时间',
    	hotnum : 466,
    	id : 2
    },{
    	title : '520民政局爆满',
    	hotnum : 449,
    	id : 3
    }
    ,{
    	title : '王思聪评论罗志祥',
    	hotnum : 434,
    	id : 4
    }]
hotlist.forEach(function(ele, index) {
    	var oClone = $('.list').clone().removeClass('list');
    	oClone.data({
    		title : ele.title,
    		hotnum : ele.hotnum,
    		id : ele.id
    	}).find('span')
    	      .text(ele.id )
    	      .next().text(ele.title)
    	      .next().text(ele.hotnum + '万')
    	$('.ul1').append(oClone);
});
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值