我有div
很多孩子。如何将它们全部移动到另一个div
使用jQuery
?
我的代码看起来像:
jQuery("body").append("<div id='popupWrapper'></div>");
var myID = $('.FloatingFrameLightBlue1').attr('id');
jQuery(myID).children().append("popupWrapper");
但它不起作用。我做错了什么?
我有div
很多孩子。如何将它们全部移动到另一个div
使用jQuery
?
我的代码看起来像:
jQuery("body").append("<div id='popupWrapper'></div>");
var myID = $('.FloatingFrameLightBlue1').attr('id');
jQuery(myID).children().append("popupWrapper");
但它不起作用。我做错了什么?
这里有一个非常简单的例子:http: //jsfiddle.net/LhR79/
正如他们已经告诉你的那样。您需要使用name或前面的 name来appendTo
代替append
并指定选择器类型(class、id...) 。在您的情况下:因为 popupWrapper 是一个 ID 而不是一个类。.
#
#popupWrapper
尝试这个:
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");
您可能需要使用appendTo()
而不是append()
也给与#
id
jQuery('#'+myID).children().appendTo("#popupWrapper");
示例:这里。
您正在向孩子添加字符串“popupWrapper”,这没有任何意义。您应该执行以下操作:
jQuery(myID).children().appendTo("#popupWrapper");
只需添加其他答案,如果您有需要移动的空格或文本,您将需要使用childNodes
$('#popupWrapper').append($('#' + myID)[0].childNodes);
jQuery实际上支持这个,你只需要使用.contents()
而不是.children()
$('#' + myID).contents().appendTo('#popupWrapper');