Почему: последний ребенок не дает мне ожидаемых результатов? - PullRequest
1 голос
/ 14 февраля 2012

jsFiddle здесь: http://jsfiddle.net/_mtr/uqMZJ/

По сути, таблица со строками, только 10 или около того, не скрыты, когда документ готов. Мне нужен индекс последней не скрытой строки, но мои селекторы jQuery подводят меня.

Ответы [ 4 ]

3 голосов
/ 14 февраля 2012

Вы неправильно используете селектор : last-child , который соответствует элементам, которые являются последними дочерними элементами их родителя.Вы действительно хотите последний элемент в соответствующем наборе, поэтому вы должны использовать вместо этого селектор : last :

i2 = $('table .visible:last').index();

Здесь вы найдете обновленную скрипку .

0 голосов
/ 14 февраля 2012

Last-child просто говорит вам, что элемент является последним дочерним элементом родителя, а не последним в группе, сопоставленной предыдущим селектором.Ни один из tr.visible s не является последним дочерним элементом тега table.Чтобы получить последний видимый tr, попробуйте вместо этого:

$('tr.visible').last ();

Вот для чего нужен «последний» метод:)

0 голосов
/ 14 февраля 2012

Вам лучше использовать селектор классов в конце:

var i2 = $('table :last-child .visible').index();

Поскольку :last-child относится к таблице.

0 голосов
/ 14 февраля 2012

Потому что нет ничего (ни <tbody>, ни <tr>, ни <td> с классом visible, который в то же время является последним потомком table.

Вместо этого следует использовать :last, который выбирает последний соответствующий элемент в коллекции jquery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...