jQuery将div加载到没有.html()方法的另一个

时间:2015-03-20 08:19:05

标签: javascript jquery dom jquery-selectors

我有一个div(让我们称之为土豆),我想要出现在另一个div(食物)里面。这样做的典型方法是:

$("#food").html ( $("#potatoes").html()); 

然而,这并没有达到我想要的效果。而不是使用实际的"土豆" div,jQuery似乎内容复制到food div中,原始内容仍然存在于浏览器中。

我希望ACTUAL div(土豆)从它的位置消失并出现在容器div(食物)中,而不必执行.hide()......或类似的方法。

原因是什么?我有选择器启用和禁用土豆div中的按钮,它们似乎触发原始土豆div内容,但不是已加载到食物div中的副本。

这有意义吗?任何人都可以了解为什么这是我应该做什么?

旁注:

$(document).on('click','#button-loaded-with-page', {} ,function(e){
    this.disabled = true;
    $('#button-inside-potatoes-div').hide();
});

以上示例是我想要实现的,但是当通过.html()方法将马铃薯内容加载到食物中时,不会隐藏按钮。相反,它隐藏了页面上的原始按钮,而不是重复的按钮。

我想要实现的目标:https://jsfiddle.net/o9kshscj/6/

3 个答案:

答案 0 :(得分:4)

您可以将对象传递给html()

$("#a").html($("#b"));

演示:Fiddle

答案 1 :(得分:3)

您可以使用append更改父级。这将将<{1}}对象移出其当前的DOM位置,作为孩子移动到#potatoes div

#food

答案 2 :(得分:1)

您可以在替换后删除div,如下所示:

$("#a").html($("#b").html());
$("#b").remove();
$("#button-to-enable").prop("disabled", false);