9

私にはdiv多くの子供がいます。divを使用してそれらすべてを別の場所に移動するにはどうすればよいjQueryですか?
私のコードは次のようになります:

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

しかし、うまくいきません。私が間違っていることは何ですか?

4

5 に答える 5

6

これを試して:

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

要素を選択するには、セレクターidに含める必要があります。したがって、追加を行う行は ではなく で#始まる必要があり、その必要はありません。jQuery("#" + myID)jQuery(myID)"#popupWrapper""popupWrapper"

もう 1 つの問題は、.append()メソッドが目的とは逆に動作することです。つまり、パラメーターで指定されたコンテンツを、一致した要素のセット内の各要素の末尾に挿入します。.appendTo()メソッドが必要です。

また、次の行に注意してください。

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

...そのクラスの最初の要素の id を取得します (少なくとも 1 つのそのような要素があり、id 属性があると仮定します。それ以外の場合myIDは になりますundefined)。

ただし、そのクラスの要素が 1 つしかないと仮定すると、追加を行うために id は必要ありません。これを行うことができます。

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

idを指定するappendTo()代わりに、おそらく使用する必要がありますappend()#

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 に答える