javascript – 添加DOM元素两次(jQuery)

前端之家收集整理的这篇文章主要介绍了javascript – 添加DOM元素两次(jQuery)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@
有人可以解释为什么以下代码段不添加< foo>到#a和#b?

HTML

<div id="a"></div>
<div id="b"></div>

JS:

$(function(){
    var $foo = $("<foo>HI</foo>");
    $("#a").append($foo);
    $("#b").append($foo);
});

jsfiddle

编辑:感谢有用的点,事实上.append()移动元素解释这个行为.因为我的应用程序中的元素实际上是一个Backbone View的.el,我不喜欢克隆它.

解决方法

因为使用追加实际上移动元素.所以你的代码将$foo移动到#a的文档中,然后将其从#a移动到#b.你可以克隆它,而不是这样你想要的影响 – 这样它是附加一个克隆,而不是初始元素:
$(function(){
    var $foo = $("<foo>HI</foo>");
    $("#a").append($foo.clone());
    $("#b").append($foo.clone());
});

你也可以从$foo追加html,而这只是把它放在dom中,而不是元素本身:

$(function(){
    var $foo = $("<foo>HI</foo>");
    $("#a").append($foo[0].outerHTML);
    $("#b").append($foo[0].outerHTML);
});

猜你在找的jQuery相关文章