2010-08-05 104 views
1

我正在嘗試查找表元素內的所有tr元素。它自己的表元素在其行中嵌套了其他表元素。所以,當我做到以下幾點:使用jquery查找即時tr元素的元素find()

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

...它也拾取嵌套表元素內的tr元素。我只想要我試圖查詢的表元素的直接tr元素。

$(tbl).find('>tr').hover(...);不適合我!

PS:tbl是一個表元素,而不是一個字符串

回答

4

閱讀完整的答案,請。

$(tbl).children() 

會給你tbodythead如果它存在。 所以,如果你想立即tr,你將需要嘗試這一點。

$(TBL)。兒童( 'TBODY')。子女( 'TR')

不要忘記考慮tbody,擷取table的兒童,在Firefox中直接調用像$(tbl).children()孩子返回tbody而不是tr,即使它不在您的標記中。複雜但有用。

快樂編碼。

+0

我不知道tbody的存在,但我會這樣: 'if($(tbl).children('tbody')。size()> 0){...} else { '' – deostroll 2010-08-05 10:04:49

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

這應該工作:

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

形成JQuery docu

的.find()和。兒童( )方法是相似的,除了後者只沿DOM樹向下傳遞單個級別。

0

不要忘記 - 即使你的標記不包括它們 - 從DOM的角度來看,tr元素嵌套在tbody元素中,所以你需要將它包含在選擇器中。

試着像...

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

雖然這可能會發現嵌套表的TBODY,所以你可能會需要這樣的東西......

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