我有一系列嵌套表(假设我无法更改其结构),我需要选择最外层的 td。
测试 HTML
<table>
<tr>
<td>
<table class="relevanttable">
<tr>
<td>one</td>
<td>two</td>
<td>
the important td
<table>
<tr>
<td>three - one</td>
<td>three - two <input id="targetinput" /></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
JS:
var relevant_field = $('#targetinput');
var target_table = relevant_field.closest('.relevanttable');
// I want something like this
var important_cell = last_selected.closest('.relevanttable > tr > td');
我想我可以用related_field.parentsUntil('.tableanswer', 'td') 来完成这项工作,然后找出哪个项目离它最远,但我想知道是否有更好的方法来解决这个问题并立即选择确切的td 我感兴趣。这是一个简单的例子,但可能有多个表相互嵌套,最外面的表可能不是我关心的表。
针对前几条评论/答案的更新:
$('#targetInput').parents('td').last()
不太正确,因为嵌套可能比我的示例中显示的要多。即 table > table > table.relevanttable (这个不重要,只最接近) > table.relevanttable > table > table >...> td
此外,为了提供一些上下文,数据将基于用户交互写入表。由于它是用户交互,因此无法提前知道什么是重要的。table.relevanttable 中可能有一个 table.relevanttable,但只能使用最接近的一个。可以将其想象为将数据粘贴到 Excel 中,只是某些 Excel 单元格包含整个工作表。这是 Excel 与 Inception 的结合。