0

この質問は重複している可能性があります(しかし、私はそれを見つけることができません)ので、冗長である場合はお詫び申し上げます。JQuery の .remove 関数を使用しliて、静的 HTML プロトタイプの要素を (明らかに) 削除できるようにしようとしています。li削除したいそれぞれの JavaScript ブロックを書き出すのではなく、 JS だけで増分 ID を作成できるかどうか疑問に思っていました。(私はHAMLとSASS fyiでServeを使用しています)。これが私が持っているものです。

/view-file.html.haml

%ul
  %li#removeThis1
    %a.remover1{:src => "#"} Remove

/application.js

...
$(".remover1").click(function () {
  $("li#removeThis1").fadeOut( function() { $(this).remove(); });
});

などにインクリメント.remover1する方法について何か考えはあります.remover2か? などli##removeThis1と同様。#removeThis2

ページの読み込み時にこれらすべてが発生する必要があります。

4

1 に答える 1

2

要素の間には先祖代々の関係があるので、それを有利に利用してください.

  // don't bother numbering the class. Use a common class
$(".remover").click(function () {

       // find the closest ancestor with an ID that start with "removeThis"
    $(this).closest("li[id^=removeThis]")
           .fadeOut( function() { $(this).remove(); });
});

または、祖先に ID が本当に必要ない場合は、そこにもクラスを使用してください...

  // don't bother numbering the class. Use a common class
$(".remover").click(function () {

       // find the closest ancestor with the class "removeThis"
    $(this).closest(".removeThis")
           .fadeOut( function() { $(this).remove(); });
});

最終的に、ID を使用する場合は、サーバー側で ID を生成し、ハンドラーを使用して要素から ID の数値部分を抽出し、祖先のセレクターに連結します。

于 2012-04-17T03:34:14.460 に答える