84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
为何必须得clone才能把对象append到dom中而直接append只能出现一个dom节点,如下
var obj = "<p>对象</p>"; var $obj = $(obj); $(obj).appendTo($(".xx")); $(obj).appendTo($(".xx"));
学习是最好的投资!
因为 $obj 指向的是同一个dom对象 第二次appendTo 是拿第一次添加到dom树里的 $obj移动到新的父节点下 表现的效果是不做任何操作 如果是appendTo其他父节点 则是移动节点
$obj
所以需要重新生成新的节点 或者 clone一份节点
问题在于 appendTo() 或者 append() 方法都是移动 DOM 对象,而不是将 DOM 对象复制到你指定的那个地方。
appendTo()
append()
比如下面这样的 HTML 结构:
<p id = "a"></p> <p id = "b"></p> <p></p>
执行这样的 jQuery 脚本:
var $a = $("#a"), $b = $("#b"), $p = $("p"); $p.appendTo($a);
HTML 结构就变成了:
<p id = "a"><p></p></p> <p id = "b"></p>
再执行这样的脚本:
$p.appendTo($b);
<p id = "a"></p> <p id = "b"><p></p></p>
也就是说,如果你想出现多个 <p></p> 标签,要么生成多个 <p></p> 元素,要么克隆多个。
<p></p>
直接用 append() 与 appendTo() 方法,如你所见,达不到你想要的效果。
(以上脚本都没试)
因为
$obj
指向的是同一个dom对象 第二次appendTo 是拿第一次添加到dom树里的$obj
移动到新的父节点下 表现的效果是不做任何操作 如果是appendTo其他父节点 则是移动节点所以需要重新生成新的节点 或者 clone一份节点
问题在于
appendTo()
或者append()
方法都是移动 DOM 对象,而不是将 DOM 对象复制到你指定的那个地方。比如下面这样的 HTML 结构:
执行这样的 jQuery 脚本:
HTML 结构就变成了:
再执行这样的脚本:
HTML 结构就变成了:
也就是说,如果你想出现多个
<p></p>
标签,要么生成多个<p></p>
元素,要么克隆多个。直接用
append()
与appendTo()
方法,如你所见,达不到你想要的效果。(以上脚本都没试)