2016-07-20 1 views
0

こんにちは!UL jqueryから1つ(idなし)の要素を削除してください

私の問題は、私はそのようなULに追加するんだということである。

$("#tagek").append("<li><a>"+arr[0]+"</a><span class='ex'><a>X</a></span></li>"); 

だからすぐに:私は、タグクラウドを作りたいです。誰かがカンマを入力すると、タグをulリストに追加します。これは魅力的ですが、li要素に「X」を追加したいので、誰かがそれをクリックすると削除されます。 そのような何か:

$(document).on('click','.ex',function(){ 
var li = $('.ex').closest("li"); 
li.remove(); 
}); 

だから私は「.EX」そのLiは消えるはずスパンをクリックしてください。これは動作していますが、すべての "X"が同じクラスを持っているため、すべてのliは(論理的に)削除されています。

これに関するご意見はありますか?

多分.eq()?

ありがとうございます。

+1

内部スパンにタグを付け、あなたが悪いのレイアウトを持っている –

+0

をしてくださいjsfiddle作成が悪いと、元のためのLiが親である... –

答えて

2

あなたはクリックされたものではなく、すべての '.ex'要素の最も近い 'li'を削除するので、この動作を試しています。代わりに、ハンドラで(この)セレクタ$を使用します。

試してみてください。

$(document).on('click','.ex',function(){ 
    $(this).parent().remove(); 
}); 
+0

どうもありがとう、それが働いています。 :) – Corner

1

それはあなたがしているので、関数ハンドラ内で(それらのすべてを取得する).exを再選択する代わりに、のいずれかを使用しますイベントがトリガーされたことを示します。

修正:

$(document).on('click', '.ex', function() { 
    $(this).closest('li').remove(); 
}); 

編集:足りませんコメントのカルマが、alex030293のコードを高速に実行する必要がありますが、子孫とは対照的に、要素が直接の子であることを前提としています。これが常に当てはまる場合は、コードを使用する方がよいでしょう。 .ex要素が別のタグにカプセル化されている状況がある場合は、私の方が良いです。

+0

あなたはredditor ...その評判はここにあります。 – nerdlyist

+0

これも働いています、あなたの答えに感謝します。残念ながら、正しい答えは1つだけマークすることができます。 :( – Corner

1

jqueryを使用している場合は、これが必要になると思います。このタグは、2つの必須属性ALTとのhrefを持っているので、

$(document).on('click','.ex',function(){ 
    var li = $(this).closest("li"); 
    li.remove(); 
    }); 
+0

ありがとう、これも働いています。残念ながら私は正しい答えを1つだけマークすることができます:( – Corner

関連する問題