在jquery中双击事件获取表的rowid

use*_*909 2 javascript jquery asp.net-mvc-3 asp.net-mvc-4

我正在使用mvc4和jquery.

我试图找到一种方法来使整行发射双击事件.

我的方案是,包含参数Person ID,FirstName和Lastname的模型.

但是html表只显示FirstNmae和Lastname.

在哪里存储人员ID,如果隐藏它也不会进入javascript和空间问题.

我的需求是,使行可双击,并且时间获取personID,其次是从最终用户隐藏人员ID.

为了得到我用过的人格,

$('#EditTable td').dblclick(function () {
    $(this).find('td:eq(1)')
    $(this).find('td:first').text()
}
Run Code Online (Sandbox Code Playgroud)

但没有任何价值.

mus*_*fan 8

问题是事件是为td元素触发,因此this引用td元素.您需要获取父项tr,然后调用该find函数.

像这样的东西:

$('#EditTable td').dblclick(function () {
    var $this = $(this);
    var row = $this.closest("tr");
    row.find('td:eq(1)');
    row.find('td:first').text();
}); //<-- NOTE: you dont close correctly in your example, which cause console errors
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子.


或者,您可以将事件分配给tr元素,这样您就可以保留原始功能代码......

$('#EditTable tr').dblclick(...
Run Code Online (Sandbox Code Playgroud)

就个人而言,我更喜欢使用data属性存储"元数据"类型的东西.例如:

$('#EditTable td').dblclick(function () {
    var $this = $(this);
    var row = $this.closest("tr");
    var id = row.data("id");
});
Run Code Online (Sandbox Code Playgroud)

使用以下html表:

<table id="EditTable">
    <tr data-id="1">
        <td>1</td><td>One</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这是一个使用数据属性的工作示例.