найти непосредственные элементы tr элемента таблицы, используя jquery find () - PullRequest
1 голос
/ 05 августа 2010

Я пытаюсь найти все элементы tr внутри элемента таблицы. Сам элемент таблицы имеет другие элементы таблицы, вложенные в его строки. Поэтому, когда я делаю следующее:

$(tbl).find('tr').hover(...);

... он также собирает элементы tr внутри вложенных элементов таблицы. Мне просто нужны непосредственные элементы tr элемента таблицы, который я пытаюсь запросить.

$(tbl).find('>tr').hover(...); у меня не сработало!

ps: tbl - это элемент таблицы, а не строка

Ответы [ 4 ]

4 голосов
/ 05 августа 2010

Прочитайте полный ответ, пожалуйста.

$(tbl).children() 

даст вам tbody, а также thead, если он существует. Так что, если вы хотите немедленный tr, вам нужно попробовать это.

$ (TBL) .children ( 'TBODY'). Детей ( 'тр')

Не забывайте учитывать tbody при получении дочерних элементов table, поскольку в Firefox прямой вызов таких детей, как $(tbl).children(), возвращает tbody, а не tr, даже если его нет в разметке , Сложно, но полезно.

Счастливое кодирование.

0 голосов
/ 05 августа 2010

Это должно работать:

$(tbl).children('tr').hover(...);

Форма документа JQuery :

Методы .find () и .children () похожи, за исключением того, что последний перемещается только на один уровень вниз по дереву DOM.

0 голосов
/ 05 августа 2010

Не забывайте, что - даже если ваша разметка не включает их - с точки зрения DOM, элементы tr вложены в элемент tbody, поэтому вам нужно будет включить это в селектор.

Попробуйте что-то вроде ...

$(tbl).find('tbody>tr').hover(...); 

Хотя это, вероятно, найдет и вложенную таблицу tbody, поэтому вам, вероятно, понадобится что-то вроде ...

$(tbl).children().find('tr').hover(...); 
0 голосов
/ 05 августа 2010
$(tbl).children('tr').hover(...);
...