jq clone 复制时候出现重复数据问题
今天在处理一个列表页面的时候,遇到了需要clone来解决的问题,当完成代码后,测试,发现有个奇葩问题,对同一列数据连续做clone处理时,数据成倍的被复制,百思不得其解,经过反复调试,终于找到了原因。
图中:
点击 dom 1 ,弹出克隆的数据。当点击dom 2 时,发现被克隆的数据变成两倍了,于是去点击更多的dom,发现数据是成倍增长的。
用 console.log(clones);
输出克隆的数据,发现确实越来越多。
百度上搜资料发现没有这方面的问题,于是反复找原因,最后在输出了被克隆的原数据时,发现从第一次克隆开始,原始数据就已经变成了两倍!
于是想到了用dom[1].remove()
方法,每次克隆都删掉一个复制体来解决问题。然而并不是那么顺利,数据没有再成倍增长,而是彻底无法克隆了!原始数据被删除了~
经过调试输出发现,原因是:clone()
方法克隆的数据是从原始数据开始部位(数据头部、入栈)一条数据的。所以,要删除它,要用dom[0].remove();
实现移除克隆数据。
生命不息,编程不止.............