0

単語を挿入できるdivと入力フィールドがあります。ユーザーは入力に単語を入力し、それらを保存してdiv「display_words」に表示できます。今、その div から選択した単語を削除できるようにしたいので、それらの単語に動的 ID を割り当てています。次のようになります。

 <div id="display_words">
   <div class="clhotpages" id="word1">word1</div>
   <div class="clhotpages" id="word2">word2</div>
 </div>

クラス「clhotpages」をクリックしたことを検出できる機能があります。

      $(".clhotpages").live('click', function() {
        //GET ID TO REMOVE THAT WORD
        alert("click");
      });

ここで、ユーザーがクリックイベントで div から単語を削除できるようにしたいと考えています。

しかし、ID は動的であるため、div から ID を取得する方法がわかりません。ありがとう

4

5 に答える 5

4

私はお勧めします:

$('#display_words').on('click','div.clhotpages', function(e){
    var id = this.id; // or e.target.id; gets the id
    $(e.target).remove(); // removes the word
});

このon()メソッドは jQuery 1.7 以降でサポートされていますlive()(1.7 で非推奨になり、1.9 で削除されました)。ただし、jQuery 1.7 よりも前のバージョンdelegate()が推奨されlive()ます。

上記を使用delegate()すると、次のように記述されます。

$('#display_words').delegate('div.clhotpages', 'click', function(e){
    var id = this.id; // or e.target.id
    $(e.target).remove();
});

参考文献:

于 2013-05-01T16:36:12.117 に答える
3

試す:

$("#display_words").on('click', '.clhotpages', function() {
   var id = $(this).attr('id');
   alert("click");
});

.live().on()jQuery 1.9 で廃止され、完全に削除されました。さらに重要なことに、要素を動的に追加する場合は、委任された要素を介して on にバインドする必要があります。

于 2013-05-01T16:35:13.190 に答える
0
 $(".clhotpages").click(function(){
    alert($(this).attr('id'));
 });
于 2013-05-01T16:35:14.550 に答える
0

できるよ

$(".clhotpages").click(function() {
    var currentID = $(this).attr("id");
    $(this).remove();
});
于 2013-05-01T16:34:43.000 に答える
0

.attr()関数を使用して、特定の属性を抽出できます。

$(".clhotpages").live('click', function() {
  $(this).attr('id');
});

idそうは言っても、要素を削除するために実際に抽出する必要はありません。クリック コールバック内で、$(this)変数を使用して、クリックされた実際の要素を参照できます。だから、あなたはこのようなことをすることができます -

$(".clhotpages").live('click',function(){
  $(this).remove();
});

.on()この関数を の代わりに使用することもできます.live()。この.live()機能は廃止の過程にあります。を使用する.on()と、コードは次のようになります。

$("#display_words").on('click','.clhotpages',function(){
  $(this).remove();
});

#display_wordsページの読み込み時に要素が存在すると想定しています。

于 2013-05-01T16:34:53.640 に答える