Получить индекс элемента среди братьев и сестер, игнорируя брата или сестру с конкретным дочерним элементомJquery

Программирование на jquery
Anonymous
Получить индекс элемента среди братьев и сестер, игнорируя брата или сестру с конкретным дочерним элементом

Сообщение Anonymous »

У меня есть конкретный вариант использования, на который я не могу найти ответа. Учитывая элементы DOM ниже:
Мне нужно найти индекс элемента .selected относительно его дочерних элементов. Но мне нужно игнорировать всех братьев и сестер, у которых есть дочерний элемент .foo (он всегда будет только прямым дочерним элементом).

Как правило, чтобы найти индекс из .item .selected вы можете использовать $(".item.selected").index(), что дает 4, но поскольку один элемент перед ним имеет .foo ребенок, правильный ответ — 3.

Я подумал, что лучший способ сделать это — захватить всех братьев и сестер < em>перед выбранным элементом (поскольку братья и сестры после него не будут сдвигать его индекс), а затем подсчитать, сколько из них имеют дочерний элемент .foo, и вычесть это число из выбранного индекса, поэтому 4-1=3. Я пытался сделать это следующим образом:

Код: Выделить всё

var selectedIndex = $(".item.selected").index();
var fooCount = $(".item.selected").prevAll('.item > .foo').length;
var finalIndex = selectedIndex - fooCount;
Проблема в том, что значение fooCount составляет 0 вместо 3.

Подробнее здесь: https://stackoverflow.com/questions/489 ... ific-child

Вернуться в «Jquery»