0

以下を使用して、「子」のクラスを持つすべてのアイテムを「親」のクラスを持つdivでラップします。

$(".child").wrapAll('<div class="parent" />');

問題は、関数が再実行されることがあり、複数の div.parents を作成したくないことです。div.childs に「親」のクラスを持つ親がまだない場合にのみ div.parent が追加されるように、コードに条件を追加するにはどうすればよいですか? ありがとう

4

3 に答える 3

1

hasClass()次のように使用できます。

if (! $(".child").parent().hasClass('parent')){
   $(".child").wrapAll('<div class="parent" />');
}

またはと一緒に使用closestするlength

if (! $(".child").closest('.parent').length){
   $(".child").wrapAll('<div class="parent" />');
}
于 2012-04-23T11:42:05.857 に答える
0

あなたは一列でそれを行うことができます)

$(".child").parents('p:not(.parent)').find(".child").wrapAll('');

于 2012-04-23T11:58:59.673 に答える
0

速いかどうかわからない:

$(":not(.parent) > .child").wrapAll('<div class="parent" />');

未検証!!しかし、うまくいくかもしれません

于 2012-04-23T11:56:21.383 に答える