javascript - 为何多次append jQuery对象只有一个dom节点
本文介绍了javascript - 为何多次append jQuery对象只有一个dom节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
为何必须得clone才能把对象append到dom中
而直接append只能出现一个dom节点,如下
var obj = "<div>对象</div>";
var $obj = $(obj);
$(obj).appendTo($(".xx"));
$(obj).appendTo($(".xx"));
解决方案
问题在于 appendTo()
或者 append()
方法都是移动 DOM 对象,而不是将 DOM 对象复制到你指定的那个地方。
比如下面这样的 HTML 结构:
<div id = "a"></div>
<div id = "b"></div>
<p></p>
执行这样的 jQuery 脚本:
var $a = $("#a"),
$b = $("#b"),
$p = $("p");
$p.appendTo($a);
HTML 结构就变成了:
<div id = "a"><p></p></div>
<div id = "b"></div>
再执行这样的脚本:
$p.appendTo($b);
HTML 结构就变成了:
<div id = "a"></div>
<div id = "b"><p></p></div>
也就是说,如果你想出现多个 <p></p>
标签,要么生成多个 <p></p>
元素,要么克隆多个。
直接用 append()
与 appendTo()
方法,如你所见,达不到你想要的效果。
(以上脚本都没试)
这篇关于javascript - 为何多次append jQuery对象只有一个dom节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文