Получить предыдущий брат, пока класс не "что-то" - PullRequest
2 голосов
/ 08 сентября 2011

Если у меня длинный список элементов <li>, при щелчке по одному, как я могу получить все элементы одного уровня, пока не будет достигнут элемент с именем класса, который содержит данную строку?

Пример:

<li>test</li>
<li class="one-two red">test</li>
<li class="green">test</li>
<li>test</li>
<li>test</li>
<li class="test">test</li>
<li>test</li>
<li>test</li>

В приведенном выше примере, если щелкнуть li.test, а заданная строка равна ne-tw, это приведет ко всем промежуточным элементам, включая элемент clicked (andSelf ()) и элемент класса one-two.

Спасибо.

1 Ответ

5 голосов
/ 08 сентября 2011

jquery имеет метод для этого:

var someclass = "one-two";
$("li").click(function(){
    var sel = $(this).prevUntil("." + someclass).andSelf();
    sel = sel.add(sel.eq(0).prev());
    console.log(sel);
});

http://api.jquery.com/prevUntil

Редактировать: пример кода из комментария:

var someclass = "one";
$("li").click(function(){
    var sel = $(this).prevUntil("[class*=" + someclass + "]").andSelf();
    sel = sel.add(sel.eq(0).prev());
    console.log(sel);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...