【发布时间】:2023-03-20 01:39:01
【问题描述】:
我正在尝试在这样的嵌套表结构中选择最高级别的tds(在第一级tds 中,有更多的表和更多的tds 不应选择
<table>
<tr>
<td> <!-- this is what I want to select -->
<table /> <!-- more td's inside that I don't want to select -->
</td>
</tr>
<tr>
<td> <!-- this is what I want to select -->
<table /> <!-- more td's inside that I don't want to select -->
</td>
</tr>
</table>
选择所需的tds 很简单:table > tr > td。但是可能有tables 带有tbody 标签:
<table>
<tbody>
<tr>
<td> <!-- this is what I want to select -->
<table /> <!-- more td's inside that I don't want to select -->
</td>
</tr>
<tr>
<td> <!-- this is what I want to select -->
<table /> <!-- more td's inside that I don't want to select -->
</td>
</tr>
</tbody>
</table>
这本身也很简单:table > tbody > tr > td。
如何找到一个不依赖> 子选择器并且通用的简单表达式?
table tr > td 之类的东西(这显然行不通,因为它在嵌套表中选择了 tds。谢谢!
【问题讨论】:
-
您必须找到包装表的独特之处才能定位它,例如它的父元素、ID、索引等。
-
table > tbody > tr > td将普遍适用,也可能是最快的解决方案。你为什么反对它? -
大多数浏览器会假设您忘记添加
tbody并会自行添加(由于 doctype 有一些例外)。我也知道这听起来很无聊,但如果你只有两个可能性,那么像$('table > tbody > tr > td', 'table > tr > td');这样的选择器就不能解决问题吗?否则,将需要大量的家长校对才能获得正确的td -
@Spokey 当然可以,但我渴望学习 - 所以我认为可能有更好的方法来做到这一点......
标签: jquery dom jquery-selectors