2012-01-19 11 views
0

私は項目の順序付けられていないリスト(<UL>)を持っています。各項目には削除ボタンがあり、これはajaxコール&を呼び出してリストから項目を削除します。私はAjaxの呼び出しを行うために必要なすべての情報を持っていますが、ユーザーがリスト内の項目を削除できるようにするにはどうすればよいでしょうか。リストから要素を削除する方がいいですか?

私が最初に考えたのは、動的にjQueryのremove()各要素に対してを使用し、各<LI>ユニークなクラス識別子&を割り当てることですが、良い方法はありますか?私のアプローチは多少ハムフィストであると感じています。

答えて

2

いくつかのユニークなクラス名を発明する必要はありませんが(あなたが右、一意の識別子を意味?id、ないclass)。

クリックしたボタンを使用して、親のliを探してください。

$('li .delete_button').click(function() { 
    var that = this; 
    $.post(url, data, function(data) { 
    if(data.can_delete) { 
     $(that).parent('li').remove(); 
    } 
    }); 
}); 
+0

'that'を' this'への参照を格納する変数として使用しているのを見たことがありません)))個人的には 't'を優先しますが、' that'は面白く見えます。 – zerkms

+0

@zerkms:とにかくupvoteすれば、「スポーツマンシップ」と呼ばれます:-) –

+0

私の答えは '.remove()'です。あなたのアップアップ。とにかく質問はあまりにも退屈だ;-) – zerkms

0

あなたのアプローチには何も問題はありません。クラスを使用する代わりに、<li data-unique-id="">、またはidのようなデータセット属性を使用できます。

$("ul").on('click', 'li', function() { 
    $.post('remove-script', 'id=' + this.id, function() { 
     $(this).fadeOut(function() { $(this).remove(); }); 
    }); 
}); 
0

HTML

<ul> 
    <li>TEXT <input type="button" value="Delete" data-id="1" /></li> 
    <li>TEXT <input type="button" value="Delete" data-id="2" /></li> 
    <li>TEXT <input type="button" value="Delete" data-id="3" /></li> 
</ul> 

とスクリプト

$("ul li input").click(function() { 
    //ajax call on $(this).data('id'); 
    $(this).closest("li").remove(); 
}); 
0

1、削除されているタイトルだたのli要素を削除...

$("ul li").remove("li[title==delete]"); 

2、第二li要素を削除します

var $li=$("ul li:eq(1)").remove(); 
+1

'これは、タイトルが削除されているli要素を削除できます。これにより、**すべての**アイテムがページから削除されます。どのようなものがクリックされたかにかかわらず – zerkms

関連する問題