Получить индекс элемента среди братьев и сестер, игнорируя брата или сестру с конкретным дочерним элементом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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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