IE不会保留已删除的DOM

时间:2013-10-21 14:11:06

标签: jquery dom

我在变量中使用dom元素然后擦除它。当我将该变量附加到其他地方的dom时,它不会出现在所有版本的IE中。虽然它在chrome和FF中工作正常

小提琴 - http://jsfiddle.net/NdtNP/

HTML:

<div id="d1" style="color:red">sdjkfk
    <a href="google.com">Click here</a>
    sjlfkj df
</div>
<div id="d2"></div>

JS:

$(function(){
    var a = $("#d1").children("a");
    $("#d1").html("");
    $("#d2").append(a);
});

我该如何避免这种情况?

3 个答案:

答案 0 :(得分:3)

jsFiddle Demo

您应该使用remove。它将返回元素。

$(function(){
 var a = $("#d1").children("a").remove();
 $("#d1").html("");
 $("#d2").append(a);
});

答案 1 :(得分:3)

使用.detach()

$(function () {
    var a = $("#d1").children("a").detach();
    $("#d1").html("");
    $("#d2").append(a);
});

jsfiddle

答案 2 :(得分:1)

为什么不尝试在删除之前通过像这样切换你的脚本来追加

$(function(){
    var a = $("#d1").children("a");
    $("#d2").append(a);
    $("#d1").html("");
});