0

周りを見回して答えを見つけることができませんでしたが、以前に尋ねられた場合はお詫びします。

あるDIVを同じ種類の別のDIVに置き換え、新しいDIVをアニメーション化してから、最初のDIVを削除して、新しいDIVが削除されたDIVの代わりになるようにします。新しいDIVを作成して追加すると、HTMLコードは次のようになります(コメントを除く)。

<div class="className">Inner HTML</div> <!-- original "className" div -->
<div class="className">Inner HTML</div> <!-- appended "className" div -->

私はいくつかの方法を試しましたが、最新のものは次のとおりです。

$(".className:eq(0)").remove();

$(".className:eq(0)").html() = $(".className:eq(1)").html();
$(".className:eq(1)").remove();

最初のメソッドは、すべての「className」要素を削除します。これは、配列全体を参照している[0]要素が原因である可能性があります。2番目の方法では、最初の要素ではなく、2番目の要素を削除します。

新しい要素をアニメーション化してそのままにしておくのは簡単ですが、ソリューションは再帰的である必要があり、「className」divを許可する必要があるため、DOMに「className」要素が蓄積されるのは避けたいと思います。必要な回数だけ交換してください。

4

3 に答える 3

1

http://api.jquery.com/first-child-selector/

$(".className:first-child").remove();

最大で2つ(古いものと新しいもの)classNameだけが隣接できる場合は、2番目を選択してから、最初に戻ることができます。

$(".className + .className").prev().remove();

からいくつかのアイデアを盗む:

于 2012-06-28T17:13:54.230 に答える
1

シンプルな使い方.replaceWith()

$(".className:first-child").replaceWith('<div class="className">Inner HTML</div>');

.replaceWith以前のものを新しいものに置き換えます。classsNameその場合、 and は必要.append()ありません.remove()

また

$(".className:first").remove();

コメントによると

次のようなことを試みていると思います:

$('<div class="className">New Div</div>').appendTo('#target').animate({
    width: 120,
    height: 120
}, 1500, function() {
    $('div.className:first').remove();
});

作業サンプル

于 2012-06-28T17:15:05.527 に答える
1

jquery の最初の方法を使用する

 $(".className").first().remove();

すべてのオブジェクトを削除したくない場合は、最初に結果セットの長さを確認することで保護できます。

   if($(".className").length > 1) {
          $('className").first().remove();
   }
于 2012-06-28T17:17:25.337 に答える