Нахождение ближайшего предыдущего li - PullRequest
1 голос
/ 10 декабря 2011

В настоящее время я пытаюсь выбрать предыдущий ближайший элемент списка в пределах <ul>

Мой текущий метод работает, если внутри него> 1 <li>.

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'), но безрезультатно.Есть идеи?

Ответы [ 3 ]

3 голосов
/ 10 декабря 2011

Это должно работать так, как у вас в вашем примере ..

демо в 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();
        });

    });
});
1 голос
/ 10 декабря 2011

просто отлично работает с prev() проверьте ссылку http://jsfiddle.net/ABqpN/5/

0 голосов
/ 10 декабря 2011

Предполагая, что $ (this) ссылается на теги "a" внутри "span" внутри "li", и предполагая, что при нажатии на "a" его родительский элемент "li" должен быть удален, вы можете сделать это:

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