1

現在、リスト内の以前の最も近いリスト要素を選択しようとしています<ul>

私の現在の方法は、その<li>中に > 1 がある場合に機能します。

html:

<ul id="coaches" class="list">
    <li><span>bob<a class="close"></a></span></li>
    <li class="colored"><span>cobb<a class="close"></a></span></li>
</ul>

js:

    $(this).closest("li").fadeOut("normal", function() {
        $(this).remove();
    });

リスト要素の数= 1と> 1の両方の要素を持つ以前の最も近いリスト要素を削除するにはどうすればよいですか? チェーンされた prev() と prevAll() を追加しようとしましたが、役に立ちclosest('li')ませんでした。何か案は?

4

3 に答える 3

3

あなたの例にあるように動作するはずです..

コードのデモは http://jsfiddle.net/gaby/nZXxD/で、現在は単一要素のコードの
デモは http://jsfiddle.net/gaby/nZXxD/1/です。li

問題はどこかにあるに違いない..

(イベントが正しくバインドされていますか? DOM の準備が整った後ですか?)

$(function(){
    $('a.close').click(function(){

        $(this).closest("li").fadeOut("normal", function() {
            $(this).remove();
        });

    });
});
于 2011-12-10T14:02:33.970 に答える
1

リンクhttp://jsfiddle.net/ABqpN/5/prev()を チェックするだけで問題なく動作します

于 2011-12-10T13:56:05.463 に答える
0

$(this) が "li" 内の "span" 内の "a" タグを参照していると仮定し、"a" をクリックすると親の "li" が削除されると仮定すると、次のように実行できます。

$(this).parent('li').fadeOut("normal", function() {
    $(this).remove();
});
于 2011-12-10T13:56:15.527 に答える