2012-10-13 3 views
8

У меня есть некоторые HTML код, который выглядит следующим образом:JQuery ближайший элемент с атрибутом, который содержит значение

<tr id="nbContent_GR1">...</tr> 
<tr id="nbContent_GR2">...</tr> 
<tr id="nbContent_GR3">...</tr> 
<tr id="nbContent_GR4">...</tr> 
<tr id="nbContent_GR5">...</tr> 
<tr id="nbContent_GR6">...</tr> 

В одной из строк, я хочу, чтобы пройти вверх по DOM, чтобы найти ближайший элемент, который имеет атрибут идентификатора, начинающийся с «nbContent_GR». Поэтому в основном я хочу найти родительский элемент TR, не зная его точный идентификатор, только первый, который начинается с «nbContent_GR». Это возможно? Если да, то как мне это сделать?

BTW, я знаю о ближайших() и «содержит» селекторах, просто не уверен, что если их можно использовать для значений атрибутов или нет.

+0

К сожалению, не понял, что вы просили. –

ответ

14

Вобще:

tr = $(this).closest("[id^='nbContent_GR']"); 

, который будет проходить через DOM до тех пор, пока не найдет родителей с ID, начиная с

+0

Отлично, я знал, что есть простое решение, которое мне не хватало. :) Я не знал о цели «^». Надо любить изучать что-то новое. – Scott

1

Две полезные страницы 'nbContent_GR', чтобы посмотреть на:

http://api.jquery.com/closest/

http://api.jquery.com/attribute-starts-with-selector/

Я думаю, вы можете объединить их для решения.

В пределах TR найдите ближайший TR. Затем используйте селектор «начинается с», чтобы найти идентификатор, начинающийся с вашего требуемого значения.

т.д .:

$(this).closest("tr").parent().find("id^='nbContent_GR'"); 
Смежные вопросы