jQuery将所有孩子移动到另一个div

时间:2013-07-17 11:50:17

标签: jquery

我有一个有许多孩子的div。如何使用div将所有这些内容移至另一个jQuery? 我的代码看起来像:

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

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

5 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:6)

试试这个:

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

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

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

另外,请注意这一行:

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

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

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

undefined

答案 2 :(得分:4)

您可能需要使用appendTo()代替append()同时使用ID为#

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

答案 3 :(得分:4)

示例:HERE

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

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

答案 4 :(得分:0)

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

Demo

{
  "dependencies": {
    "@angular/animations": "5.0.1",
    "@angular/common": "5.0.1",
    "@angular/compiler": "5.0.1",
    "@angular/compiler-cli": "5.0.1",
    "@angular/core": "5.0.1",
    "@angular/forms": "5.0.1",
    "@angular/http": "5.0.1",
    "@angular/platform-browser": "5.0.1",
    "@angular/platform-browser-dynamic": "5.0.1",
    "@ionic-native/core": "4.8.0",
    "@ionic-native/splash-screen": "4.8.0",
    "@ionic-native/status-bar": "4.8.0",
    "@ionic/storage": "2.1.3",
    "core-js": "^2.5.7",
    "ionic-angular": "3.9.2",
    "ionicons": "3.0.0",
    "ngx-restangular": "2.0.1",
    "rxjs": "5.4.3",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.1.10",
    "typescript": "~2.6.2"
  }
}

jQuery supports this actually,您只需要使用.contents()而不是$('#popupWrapper').append($('#' + myID)[0].childNodes);

.children()