我有一些看起来像这样的 HTML(注意:我知道这段代码不是很好,但我最初没有设计它,其中一些是自动生成的):
<table id="tab1">
<tbody>
<tr id="row1">
<td><span>Some text</span></td>
<td><span>more text</span></td>
<td><input type="text" id="inp1" onclick="DoSomething(this);" /></td>
</tr>
<tr id="row2">
<td><span>Some text</span></td>
<td><span>more text</span></td>
<td><table id="tab2"><tbody>
<tr><td><input type="radio" id="inp2" onclick="DoSomething(this);" /><span>item</span></td></tr>
</tbody></table></td>
</tr>
</tbody>
</table>
所有这些都嵌入在一个表中,该表也嵌入在一个表中等等。在 DoSomething(this)
函数中,我想检索表 tab1
下的 TR。我无法弄清楚为此所需的 jquery。目前我正在做这样的事情:
function DoSomething(control) {
var parentTab = '<%=tab1.ClientID %>';
var tr = $('#' + parentTab + ' > tbody > tr').has('#' + $(control).attr('id')).get(0);
}
这看起来确实很困惑,但是很有效。有没有更干净的方法来做到这一点?如果有帮助,表内的输入将始终是单选按钮,并且单选按钮永远不会出现在子表之外。理想情况下,我希望在不知道 tab1
id 的情况下执行此操作,但这似乎不可能。
最佳答案
.has()
还接受 DOM 元素作为参数,因此您可以简化为:
var tr = $('#' + parentTab + ' > tbody > tr').has(control)[0];
关于jquery - 如何找到包含嵌套在表中的特定 ID 的最高级别 TR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035365/