根据列标题文本选择列中的表格单元格

时间:2014-03-12 10:43:09

标签: javascript jquery jquery-selectors

如何根据表格列标题中的文字选择列中的单元格,例如"状态",使用JavascriptjQuery

(详细信息,不是问题的一部分:我想稍后使用它根据单元格内容将背景颜色应用于该列中的单元格,以便例如'错误'将得到背景颜色为红色,'质量好'将为白色。)

1 个答案:

答案 0 :(得分:3)

这是我为你做的一个快速小提琴..

http://jsfiddle.net/N2CHt/2/

HTML

<table>
    <tr>
        <th>One</th>
        <th>Two</th>
        <th>Status</th>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>Bad</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
        <td>Good</td>
    </tr>
</table>

JQUERY

$(function(){
    var columnindex = $('th:contains("Status")').index();
    if(columnindex != -1)
    {
        $('tr').each(function(){
            var column = $('td', this).eq(columnindex);

            switch(column.text())
            {
                case "Bad":
                    column.css({ backgroundColor: '#900' });
                    break;

                case "Good":
                    column.css({ backgroundColor: '#090' });
                    break;

                default:

                    break;

            }
        });
    }
});

您可以更改颜色以及您要搜索的文字,但是您应该能够了解最新信息......

基本上我们使用contains选择器(https://api.jquery.com/contains-selector/)yp找到包含我们要查找的文字的th,然后.index()http://api.jquery.com/index/)获取列索引。然后,我们使用.eachhttps://api.jquery.com/jQuery.each/)循环播放,并使用eqhttps://api.jquery.com/eq/)抓取该项目。然后操作td的css并设置其背景颜色属性。

需要注意的一点是,如果2列th文本包含&#34;状态&#34;你会遇到问题!