JQuery: найти следующую строку таблицы - PullRequest
23 голосов
/ 02 ноября 2009

У меня есть таблица, содержащая строки, связанные ячейки - и некоторые из них содержат img следующим образом:

<img id="FormView1_btnSave_row1%1%new" style="border-width: 0px; cursor: pointer;"
src="grafik/ok_16x16.gif" onclick="cleverStuff(this)"/>

В функции cleverStuff я хотел бы работать со строкой, следующей за строкой, в которой была нажата кнопка - эта специальная кнопка содержится только в последней видимой строке, внизу есть несколько скрытых линий, и я хочу сделать первую скрытую строку видимой - но мне не удается перейти на следующую строку. Насколько я понимаю, все комбинации parent() и next() могут быть использованы для перехода от img к td, к tr и, наконец, к следующему tr. Поэтому я попытался проверить это:

$(ctrl).attr('id') правильно возвращает id img:)

$(ctrl).parent().attr('id') возвращает NULL.

Что мне здесь не хватает?

Ответы [ 4 ]

75 голосов
/ 02 ноября 2009

Это должно дать вам заключительное tr элемента, даже если он не является прямым родителем элемента, затем следующая строка этой строки. если вы используете parent для элемента, который находится внутри td, он даст вам столбец, а не строку. Предоставление фильтра методу parent () просто отфильтровывает родителя, если только он не соответствует фильтру, как правило, не приводит к совпадению элементов. Вероятно, вам нужен ближайший, но родители ('tr') могут понадобиться, если у вас есть вложенные таблицы и вы хотите использовать внешнюю строку вместо внутренней.

$(this).closest('tr').next('tr')
32 голосов
/ 02 ноября 2009

Вы не показываете нам достаточно HTML, но это должно работать:

$(ctrl).parent('tr').next();
5 голосов
/ 02 ноября 2009

Может быть, у родительского элемента не установлен идентификатор? Чтобы перейти к следующему ряду с картинки, я считаю, что вы можете сделать:

$(this).parent('tr').next('tr')
1 голос
/ 24 ноября 2013

Я надеюсь, что вы можете использовать

jQuery(this).parents('tr'); 
...