jquery - 如何找到包含嵌套在表中的特定 ID 的最高级别 TR

标签 jquery asp.net

我有一些看起来像这样的 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/

相关文章:

Asp.Net MVC 动态模型绑定(bind)前缀

php - 执行数据表搜索失败

javascript - fadeIn/FadeOut 与 bootstrap (CSS) 重叠的 div

c# - 在 C# 中不使用 GDI+ 处理图像

c# - 来自非请求工作线程的应用程序的 ASP.NET WebApi 基础 Uri

c# - 如何在回发时捕获并触发用户控件的自定义事件

jquery - jQGrid 子网格,具有服务器生成的单个 JSON

jquery - 如何防止在快速输入时打开 jquery UI 自动完成下拉菜单

javascript - 在 HTML 中预加载图像

c# - 如何显示消息框并从 aspx.cs 获取确认"is"或“否”