JS里如何深度拷贝一个dom节点?

比如有一个input:
<input type="text" name="texts" />
$("input[name='texts']").attr("name","newtexts");//现在改变了name的值
$("input[name='texts']").clone();//clone一个
现在在操作name等于newtexts的input值的时候会存在两个值,请问这种情况怎么解决,我想到用深度拷贝,但不知道怎么实现在dom上的运用.
因为现在有个需求就是将这个input移动到另一个dom中,用append的话会把之前的移除了,第二个移动就不行,

阅读 5.2k
3 个回答

$("input[name='texts']")会把所有的name为texts的dom都得到,再调用attr操作,所有都应用这个操作;

可以先保存 var $inputs = $("input[name='texts']"),然后克隆,最后再对$inputs操作

let newDom = oldDom.cloneNode(true)
JQ的话oldDom.clone(true)

你是怎么写的 不会影响啊 你这个第一行都改变name了怎么还能选择到
jq用的就是js原生的cloneNode(true);

$("input[name='texts']").clone().appendTo('#box').attr("name", "newtexts");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题