0

関連するコードのみを投稿します。私のコード全体が必要な場合は、私に知らせてください。

とにかく、私は次のコードを持っています:

 var deck = [];
 var c = 0;
$('#add').click(function(){
     var addToDeck = $('input[name=searchItem]').val();
     addToDeck = addToDeck.toLowerCase();
     deck.push(addToDeck);
   $('#save').append('<div id="cardList' + (c++) + '">' + database[deck[deck.length-1]].name + '</div>');
 });

これは、特定のボタンが押されるたびに一意のIDを持つdivを動的に追加します(例:cardList1、cardList2など)。ここで、ユーザーが特定のID(たとえばcardList2)を持つdivをクリックした場合、それをリストから削除したいと思います。

私はこのようなことを試みました:

  $(document).on('click','#save', function(){
   $('#cardList' + 'c').remove();
  });

しかし、それは機能しません。私は正しい方向に向かっていると思います。

繰り返しになりますが、これはカードゲームのデッキ構築アプリケーションです...したがって、ユーザーがカードIDのあるdivをクリックするだけで、すでにデッキにあるカードを削除できるようにすることで、ユーザーが簡単にできるようにしたいと思います。

4

2 に答える 2

3

2番目のコード例でcは、が定義されていないか、期待する値がありません。ただし、これは機能するはずです。

$('#save').on('click','[id^=cardList]', function(){
   $(this).remove();
});

(クリックをリッスンする代わりに)cardList要素の子孫であるIDを持つすべての要素のクリックイベントをリッスンします。クリックされた要素を参照するだけで削除したいので、簡単になります。#save#savethis

要素に追加のクラスを与えて、attribute-starts-withselectorの代わりにそれを使用することもできます。

// for example
$('<div />', {
    id: 'cardList' + (c++), 
    'class': 'myclass', 
    text: database[deck[deck.length-1]].name
}).appendTo('#save');

// somewhere else

$('#save').on('click','.myclass', function(){
   $(this).remove();
});

また、一意のIDが必要かどうかも検討する必要があります。

于 2013-02-05T18:03:16.580 に答える
1

新しいdivをjQueryオブジェクトとして作成します。

$('#save').append('<div>', {'id':'cardList' + (c++)});

その後、アクセス可能になります。

于 2013-02-05T18:03:18.517 に答える