我有一系列带有表格数据的嵌套表。这些表有 3 层深,因此有一个主表保存整个事物的结构,一些中间表保存主表的部分,以及包含实际数据的数据表。
这个想法是,当一个元素注册一个键事件时,将对注册该键事件的数据行进行计算。
数据表的结构大致如下:
<table id="someDataTable">
<tbody>
<tr>
<td >Some Title</td>
<td >Units</td>
<td >Val/Unit</td>
<td >Value</td>
</tr>
<tr>
<td><input type="text" size="30" /></td>
<td><input type="text" size="14" class="units"/></td>
<td><input type="text" size="14" class="value"/></td>
<td><input type="text" size="14" readonly="readonly" class=total"/></td>
</tr>
...
</tbody>
</table>
当然,表 id 是唯一的。
粗略的想法是“单位*值=总计”在许多行中(它们是按需动态生成的,但我认为这不重要)。
使这成为可能的想法是使用以下方法捕获主表中的所有按键:
function initialize() {
$(document).on('keypress', '#tblMasterTable', DoMathForRow);
}
然后调用一个可以对所有数据表进行数学运算的通用函数。这个想法是用“这个”作为识别的手段......
function DoMathForRow() {
tKeyedBox = this;
//Do Things Here
}
基本上,我希望'this'会返回输入的输入框,所以我可以有效地说
tKeyedBox.parent().parent()
如果有按键事件,则可以访问确切的行。从那里可以很容易地完成其余的工作。
但是,'this' 返回整个主表,这是非常不幸的。
然后我的问题如下:如何检索出现按键事件的输入框(或单元格或行——绝对识别的东西)。
我对 jQuery 很陌生,所以我在很好地构建我的选择语句方面相当平庸,我觉得这可能是一个过去可能已经回答过的简单问题,但我无法获得我正在寻找的信息其他问题。谢谢你的耐心!