CSSではなくjQueryを使用して、レコード間で行の色を変更することは可能ですか?もしそうなら、誰かがこれを達成する方法についての短いコードスクリプトを提供できますか?
これを試して:
$("tr:even").css("background-color", "#eeeeee");
$("tr:odd").css("background-color", "#ffffff");
クロスブラウザ(つまりIE)のサポートにCSSを使用したくないだけですか?もしそうなら、あなたはcould CSSでスタイルを維持し、jQueryを使用してクラスを設定します。
例えば:
<style>
/* tr:nth-child(even) */
tr.even { background-color: white; }
/* tr:nth-child(odd) */
tr.odd { background-color: black; }
</style>
<script>
$(function(){
// Apply to each table individually and make sure nothing is doubleclassed
// if you run this multiples of times.
$('table').each(function() {
$('tr:odd', this).addClass('odd').removeClass('even');
$('tr:even', this).addClass('even').removeClass('odd');
});
});
</script>
テーブルからtr
要素を選択でき、cssは関数をパラメーターとして受け入れます。これにより、決定したいくつかの基準に基づいて値が返されます。この場合、インデックスの均一性をテストできます。
$("#table tr").css("background-color", function(index) {
return index%2==0?"blue":"red";
});
JSFiddle: http://jsfiddle.net/n3Zny/
jQueryはSizzleSeletor Engineを使用します。これは、CSSと同じ構文を使用しているので便利です。したがって、CSSと同じセレクターを使用しますが、jQuery .css()
関数を使用して要素のCSSを変更します。
_$('#table_id').find('tr:even').css({'background-color':'red'})
.end().find('tr:odd').css({'background-color':'blue'});
_
このコード例では、変更するテーブルを選択し、すべての偶数の子要素(tr
)を選択して背景色を変更し、.end()
を使用して前の選択に戻ります。テーブル全体を選択し、奇数行を選択してCSSを変更します。
非表示の行(または別の属性、たとえばclass="struck"
):
<style>
tr.struck{background-color:#633;color:white;}
tr.eee{background-color:#EEE;color:#000;}
tr.fff{background-color:#FFF;color:#000;}
</style>
function doZebra(){
var tTrCnt=0;
$("##tblData tbody tr").each(function(){
if($(this).css("display")!="none" && !$(this).hasClass("struck")){
tTrCnt++;
if(tTrCnt % 2) $(this).removeClass().addClass("eee");
else $(this).removeClass().addClass("fff");
}
});
}
次のコードを使用して、代替行の色を変更しました。 http://www.tutsway.com/set-alternate-row-colors-in-jQuery.php から参照しました
window.jQuery(document).ready(function(){
window.jQuery("tr:odd" ).css("background-color","#fbcff5" );
window.jQuery("tr:even").css("background-color","#bbbbff");
});