回答
使用這個代替:
$('#table > tr'); // choose direct child tr nodes from table with id 'table'
或者
$('#table > tbody > tr');
如果你有tbody
元素。
這裏是鏈接jQuery的文檔:http://api.jquery.com/child-selector/
,如果你有一個頁面多個表,給他們班,這樣你就不必去通過這個每個其他時間..
例如
$('.mytable > tr')
HTML
<table class="mytable">
<tr>
<td>...</td>
</tr>
</table>
直觀地看,好像
$('table.top > tr');
就足夠了。但是,你不能保證它會。某些瀏覽器隱式插入tbody
元素作爲所有tr
的父項。這是HTML標準的某些版本在技術上需要的。然而,並非所有的瀏覽器都這樣做。爲了安全,你應該這樣做:
$('table.top > tr, table.top > thead > tr, table.top > tbody > tr');
有點冗長,但更有可能在更多情況下工作。
@Stano好的。我已經添加了一個類。 – lonesomeday
@Stano [但是在HTML5中不需要](http://www.w3.org/html/wg/drafts/html/master/tabular-data.html#the-table-element)。 – lonesomeday
是的,它不是HTML所必需的,但它是在DOM中自動創建的。所以'$('table.top> tr');'選擇器不會找到任何直接的'tr'子元素。只是在FF和所有IE中測試過它。 **所有**瀏覽器隱式插入tbody元素。 – Stano
沒錯:
$('#table > tr');
而且,如果你正在風格的變化,請確保您先基本樣式設置爲所有的錶行(或專門針對內表)。
例如,如果您執行$("#table > tr").css("background-color", "orange");
,則內部表也將變爲橙色,因爲通過CSS屬性它們會繼承它們的父級樣式。
設置基本顏色爲所有錶行第一:
tr {
background-color: white;
}
有在表體兩種方法來selecting direct children使用jQuery:
var rows = $('#table > tbody > tr');
或
var rows = $('#table').children('tbody').children('tr');
tbody
元素是DOM中的created automatically(也在過時的IE5.5中),即使它不是用HTML編寫的。
使用jQuery的child selector比.children() method更具可讀性和a bit faster。
- 1. 在表中選擇合適的tr - jquery
- 2. jquery,在表中選擇幾個TR
- 3. jquery tr id選擇
- 4. jquery選擇和複製tr
- 5. jquery:通過tr選擇單選按鈕
- 6. jquery的選擇所選<tr>
- 7. 在表格中,選擇tr#myId和nextone
- 8. 在表格中選擇了tr
- 9. 選擇按鈕表 - 使用jQuery選擇
- 10. jQuery:在選擇器內使用變量
- 11. jQuery與嵌套表,選擇外部表tr/td與傳遞選擇器
- 12. JQUERY選擇中的<tr>
- 13. jQuery最接近的TR選擇
- 14. jquery選擇tr中的每個td
- 15. jquery,DOM操作後無法選擇TR
- 16. 使用jQuery選擇表
- 17. jQuery的選擇只有TR/TD主表,而不是嵌套表
- 18. 跳過使用jQuery TR選擇上的keydown
- 19. jQuery datatable - 在列內選擇列表
- 20. 使用jQuery在表中選擇空行
- 21. jQuery選擇用於在表
- 22. jQuery - 在選擇器內選擇父項
- 23. 如何使用jquery從表格中最後一個tr選擇前一個td?
- 24. jQuery只在主表中選擇tr,而不是在嵌套表中
- 25. Xpath的選擇第二TR畢竟TR
- 26. jquery通過tr動態使用複選框的動態foreach表中的tr
- 27. jQuery選擇隱藏所有TR形式表
- 28. 如何選擇包含類的所有錶行(tr)(jquery)
- 29. Jquery - 選擇我的表的最後一個tr
- 30. 表內部的JQuery選擇器表
我剛剛在IETester中測試了一個沒有'tbody'標籤的html,甚至是舊版本的IE5.5(就像所有較新的瀏覽器一樣)會自動在DOM中創建缺少的'tbody'標籤。所以第一個選擇器總是匹配零行。更多信息[here](http://stackoverflow.com/questions/938083/why-do-browsers-insert-tbody-element-into-table-elements#938143)。 – Stano