我写了一些jQuery来从具有某个类的表中选择单元格;在这种情况下,“你好”。但是,该表具有嵌套表,其中包含相同类的列。如何从外表中选择单元格但不从内部选择单元格?见下文:
HTML: <table class="foo"> <!-- this is the outer table <tbody> <tr> <td class="hello"> <!-- select this cell <table> <!-- this is the nested table <tbody> <tr> <td class="hello"> <!-- do not select this cell </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> jQuery: // this selects the nested cells as well $('table.foo:first').find('td.hello').doSomething();
答案 0 :(得分:5)
你想要的是避免递归太深,所以你可以这样:
$('table:first > tbody > tr > td.hello')
我认为,相当于
$('table:first').children('tbody').children('tr').children('td.hello')
答案 1 :(得分:0)
如果外表上的类保留,您可以使用:
$('table.foo > tbody > tr > td.hello');
这里要注意的一件事可能是<tbody>
元素总是存在,即使您没有明确指定它。由于<tbody>
元素的SGML / HTML / XHTML / whatyacallit定义的性质,它具有可选开始标记。即使源不包含它,也会在解析表时创建DOM元素。