jQuery: .nextUntil () класса - PullRequest
       2

jQuery: .nextUntil () класса

2 голосов
/ 19 сентября 2019

Как найти все элементы класса после указанного элемента и перед указанным элементом.

jQuery .nextUntil() возвращает все элементов послеселектор, вплоть до указанного селектора, но мне нужно найти все элементы после элемента и перед элементом, которые имеют определенный класс.

Мне нужно сделать это без каких-либо родительских селекторов.

Итак, в этом фрагменте я хотел бы, чтобы все элементы класса yes были выделены желтым цветом.

var el = $('.start').nextUntil('.stop');
el.css('background', 'yellow');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="start">start</div>
<div class="yes">yes</div>
<div class="no">no</div>
<div class="yes">yes</div>
<div class="no">no</div>
<div class="yes">yes</div>
<div class="no">no</div>
<div class="stop">stop</div>

Хотел бы я сделать что-то вроде $('.start').nextAll('.yes').until('.stop'); почему это не вещь?

Ответы [ 2 ]

3 голосов
/ 19 сентября 2019
$('.start').nextUntil('.stop').filter('.yes').css('backgroundColor', 'yellow')

nextUntil может использоваться для получения подмножества элементов.Если вы хотите еще больше сократить это подмножество, вы можете использовать filter, чтобы получить более детальный набор для манипулирования.

0 голосов
/ 19 сентября 2019

Вы можете применить модификацию только к классу yes, указанному внутри класса start:

$('.start-wrapper .yes').css('background', 'yellow');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="start-wrapper">
  <div class="start">start</div>
  <div class="yes">yes</div>
  <div class="no">no</div>
  <div class="yes">yes</div>
  <div class="no">no</div>
  <div class="yes">yes</div>
  <div class="no">no</div>
  <div class="stop">stop</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...