我有一个表格,一旦点击一行或留下文本框,就可以突出显示行。
我的表名为“editTable”,表的主体看起来像这样(行在foreach循环中动态生成,因此可以有多个):
<tbody>
<tr>
<td>
blabla
</td>
<td>
blabla
</td>
<td>
<input type="submit" id="item_Unitprice" />
</td>
<td id="total"></td>
<td id="highlighter">
<img src="~/Content/images/highlight.gif" /></td>
</tr>
</tbody>
表突出显示的工作原理如下:
// Highlighting table
$('#editTable').on('click focusout', 'tbody tr', function (event) {
$(this).toggleClass('highlight');
});
这样可行,但是现在我希望表格突出显示仅响应行中第5个td元素的点击(即高亮图像)或者将文本框留在每行的第3个td元素中。 / p>
这可能吗?如果可以,怎么做?
答案 0 :(得分:1)
如何将$('#editTable')
更改为$('#editTable').eq(4)
答案 1 :(得分:0)
好吧,我通过以下方式找到了解决方案:
(1)突出显示焦点我仍然使用旧函数:
// Highlighting table on focusout
$('#editTable').on('focusout', 'tbody tr', function (event) {
$(this).toggleClass('highlight');
});
(2)为了突出显示点击,我将onclick事件添加到图像中,如下所示:
<img src="~/Content/images/highlight.gif" onclick="highlight(this)" />
并将以下代码添加到我的JavaScript文件中(基于this问题,在点击后删除一行):
function highlight(o) {
var p = o.parentNode.parentNode;
$(p).toggleClass('highlight');
}
这使它有效。当然,将两者合二为一会更漂亮,但现在我对功能感到满意。