jQuery: prev() не работает?
у меня возникли проблемы с использованием prev () в jQuery, где он не выбирает правильный элемент.
моя структура HTML выглядит следующим образом:
<section id="about">
...
</section>
<hr>
<section id="contact">
...
</section>
раздел "активный" - это #contact. Я хочу выбрать предыдущий раздел, пропуская <hr>
active = active.prev('section')
Кажется, не работает. Думаю, я неправильно читаю документы...
если я достану <hr>
все работает прекрасно. Любые идеи о том, как пропустить <hr>
на кнопки prev()?
ТИА
3 ответов
Я думаю, что, возможно, я неправильно читаю документы...
на API docs для .prev()
дать такое описание:
описание: вам ближайший предшествующий одноуровневый элемент из каждого элемента в наборе совпавших элементов, дополнительно фильтруется с помощью селектора.
Итак, проблема в том, что hr
есть и обыскивается .prev()
, затем к 'section'
селектор.
любые идеи о том, как пропустить
<hr>
на кнопки prev()?
можно назвать .prev()
один раз, чтобы пропустить это hr
затем вызвать его снова для раздела:
active = active.prev().prev('section');
или использовать .prevAll()
и найти ближайший предшествующий (в случае, если перед ним есть какие-либо другие разделы):
active = active.prevAll('section').first();
используйте prevAll () вместо
active = active.prevAll('section')
из документации jQuery:
prev ()=> "получить непосредственно предшествующий брат" таким образом, он получит только первый элемент, поэтому при удалении <hr>
, он будет работать.