84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
为何必须得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()
方法,如你所见,达不到你想要的效果。(以上脚本都没试)