仅当单击第3行元素或第3行元素中的文本框外输出时,才使用JQuery突出显示表行

时间:2013-11-20 13:21:42

标签: javascript jquery html

我有一个表格,一旦点击一行或留下文本框,就可以突出显示行。

我的表名为“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>

这可能吗?如果可以,怎么做?

2 个答案:

答案 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');
}

这使它有效。当然,将两者合二为一会更漂亮,但现在我对功能感到满意。