0

我在表格场景中有表格。当我尝试使用 $("#table tr");then 选择 trs 时,它也会从内部表中选择所有 tr。

如何仅从外部表中选择 tr。

4

5 回答 5

5

改用这个:

$('#table > tr'); // choose direct child tr nodes from table with id 'table'

或者

$('#table > tbody > tr');

如果你有tbody元素。

这是 jQuery 文档的链接:http: //api.jquery.com/child-selector/

于 2013-06-25T07:53:04.883 回答
1

直觉上好像

$('table.top > tr');

就足够了。但是,您不能保证一定会。一些浏览器隐式插入一个tbody元素作为所有trs 的父元素。这在技术上是某些版本的 HTML 标准所要求的。然而,并非所有浏览器都这样做。为了安全起见,您可能应该这样做:

$('table.top > tr, table.top > thead > tr, table.top > tbody > tr');

有点冗长,但更有可能在更多情况下工作。

于 2013-06-25T07:55:29.450 回答
0

如果您在一个页面中有多个表格,请为它们提供类,这样您就不必每隔一段时间都经历一次......

例如

$('.mytable > tr')

html

<table class="mytable">
  <tr>
    <td>...</td>
  </tr>
</table>
于 2013-06-25T07:54:52.730 回答
0

是的:

$('#table > tr');

但是,如果您要进行样式更改,请确保首先为所有表格行设置基本样式(或专门针对内部表格)。

例如,如果你执行$("#table > tr").css("background-color", "orange");,内部表格也会变成橙色,因为通过 CSS 属性它们继承了它们的父样式。

首先为所有表格行设置基色:

tr {
background-color: white;
}
于 2013-06-25T07:57:48.820 回答
0

使用 jQuery 在表体中选择直接子级有两种选择:

var rows = $('#table > tbody > tr');

或者

var rows = $('#table').children('tbody').children('tr');

tbody元素是在 DOM 中自动创建的(也在过时的 IE5.5 中),即使它不是用 HTML 编写的。
使用 jQuery 的子选择器.children() 方法更具可读性和速度

于 2013-06-25T09:14:47.950 回答