Найти текст в элементе и добавить класс к родителю - PullRequest
1 голос
/ 01 ноября 2009

HTML:

<table>
 <tr>
  <td>
   <a href="#" class="nav">link</a>
  <td>
 </tr>
</table>

Я хочу: НАЙТИ ТЕКСТ 'link' в a.nav и ДОБАВИТЬ ID 'abc' в 'table'. Пробовал это, но это не работает:

$('table>tbody>tr>td>a.nav:contains("Forum Index")').parents('table').attr('id', 'newID');

(tbody, потому что большинство браузеров добавляют его автоматически)

Ответы [ 2 ]

4 голосов
/ 01 ноября 2009

Ваш критерий выбора не должен быть таким явным. На самом деле, я бы сделал их максимально простыми, оставив при этом только те элементы, которые вам нужны. Простые критерии выбора будут более производительными.

$('a.nav:contains("link")').parents('table').attr('id', 'abc');
1 голос
/ 01 ноября 2009

Да, это работает. Я попытался сделать это, изменив только строку в содержимом с «Индекса форума» на «ссылку», и он действительно изменил идентификатор таблицы.

Однако вы не должны менять идентификатор элементов. Используйте класс intead, если это возможно.

...