9

我有div很多孩子。如何将它们全部移动到另一个div使用jQuery
我的代码看起来像:

jQuery("body").append("<div id='popupWrapper'></div>");
var myID = $('.FloatingFrameLightBlue1').attr('id');
jQuery(myID).children().append("popupWrapper");

但它不起作用。我做错了什么?

4

5 回答 5

13

这里有一个非常简单的例子:http: //jsfiddle.net/LhR79/

正如他们已经告诉你的那样。您需要使用name或前面的 name来appendTo代替append并指定选择器类型(class、id...) 。在您的情况下:因为 popupWrapper 是一个 ID 而不是一个类。.##popupWrapper

于 2013-07-17T11:55:50.850 回答
6

尝试这个:

jQuery("#" + myID).children().appendTo("#popupWrapper");

要按元素选择元素,id您需要包含#在选择器中。因此,执行附加的行需要以jQuery("#" + myID)而不是开头,而jQuery(myID)"#popupWrapper"不需要"popupWrapper"

另一个问题是该.append()方法的工作方式与您想要做的相反,也就是说,它将参数中指定的内容插入到匹配元素集中每个元素的末尾。你想要的.appendTo()方法

另外,请注意这一行:

var myID = $('.FloatingFrameLightBlue1').attr('id');

...获取该类的第一个元素的 id(假设至少有一个这样的元素并且它具有 id 属性,否则myID将为undefined)。

但是假设该类只有一个元素,您不需要 id 来进行追加,您可以这样做:

$('.FloatingFrameLightBlue1').children().appendTo("#popupWrapper");
于 2013-07-17T11:58:59.153 回答
5

您可能需要使用appendTo()而不是append()也给与#id

jQuery('#'+myID).children().appendTo("#popupWrapper");
于 2013-07-17T11:51:47.143 回答
4

示例:这里

您正在向孩子添加字符串“popupWrapper”,这没有任何意义。您应该执行以下操作:

jQuery(myID).children().appendTo("#popupWrapper");
于 2013-07-17T11:53:36.430 回答
2

只需添加其他答案,如果您有需要移动的空格或文本,您将需要使用childNodes

演示

$('#popupWrapper').append($('#' + myID)[0].childNodes);

jQuery实际上支持这个,你只需要使用.contents()而不是.children()

$('#' + myID).contents().appendTo('#popupWrapper');
于 2018-07-05T09:35:05.757 回答