如何仅在表的一列中检查文本

时间:2013-05-23 16:19:51

标签: jquery

我有一张这样的表

<table class="paginated">
    <thead>
        <tr>
            <th scope="col">A</th>
            <th scope="col">B</th>
            <th scope="col">Error</th>
            <th scope="col">D</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Error</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>Error</td>
            <td>4</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>Error</td>
            <td>4</td>
        </tr>

    </tbody>
</table>

<script type="text/javascript" src="resources/javascripts/tablePagination.js" /></script>

其实我想突出显示错误列

错误文字的行

我使用以下脚本

$("tbody tr td:contains('Error')").each(function(){
    $(this).parent().addClass('highlightedRow');
});

但问题是,即使在第一列中我有错误文字,我的行也会突出显示为

<tr>
        <td>Error</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>

如果我的表的错误列包含错误文本,那么我的行怎么会突出显示?

由于

2 个答案:

答案 0 :(得分:5)

您可以使用:eq()选择它:

$('tbody tr').has('td:eq(2):contains("Error")').addClass('highlightedRow')

答案 1 :(得分:2)

只需在选择器中添加一个额外条件即可。 :eq(2),第3栏。

$("tbody tr td:eq(2):contains('Error')")