2

私はこのようなテーブルを持っています:

<table> 
<thead>
   <th>id </th><th>name </th><th>number </th><th>result </th> 
</thead>        
<tbody>
<tr>
 <td>stuff</td>
 <td>stuff</td>
 <td>stuff</td>
 <td>stuff</td> 
</tr>
</tbody>
 </table>

ヘッダーclass = "red"が_tdresult

したがって、ページが読み込まれるときに動的にjqueryを含む結果列のみが表示されます。

4

3 に答える 3

2

を使用してヘッダーのインデックスを取得し、セレクター.index()を使用してクラスを適用できます。:nth-child

jsFiddle

ここに画像の説明を入力してください

var resultHeaderIndex = $('th:contains("result")').index();
$('td:nth-child(' + (resultHeaderIndex + 1) + ')').addClass('red')

クラスをヘッダーにも追加したい場合は、インデックスを取得する前にクラスを追加するだけです。

jsFiddle

ここに画像の説明を入力してください

var resultHeaderIndex = $('th:contains("result")')
    .addClass('red')
    .index();
$('td:nth-child(' + (resultHeaderIndex + 1) + ')').addClass('red')
于 2013-03-27T03:32:53.543 に答える
1

jQuery.index()を使用すると.eq()、これを非常に簡単に行うことができると思います。

(function($){
    $.fn.colorColumn = function(headerText, color){
        var index = this.find("th").filter(function(){
            return ($(this).text() == headerText);
        }).css("backgroundColor", color).index();
        this.find("tr").each(function(){
            $(this).children().eq(index).css({backgroundColor: color});
        })
    }
})(jQuery);

$("table").colorColumn("number", "red");

作業デモ: http: //jsfiddle.net/pitaj/eG5KE/

于 2013-03-27T03:43:04.510 に答える
0

私がそれを行う方法は、条件付きとjQueryを使用することですeach

$("th").each(function() {
    if ($(this).text() === "result") { $(this).addClass('red') }
}
于 2013-03-27T03:34:17.133 に答える