ページ コードを含む同じタグに外部スクリプトを含めることはできません。別の空のタグである必要があります。
<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
<script>
// my script
</script>
さらに、いくつかの注意事項:
この.each()
関数は、フィルター関数を何度も実行することを除いて、コード内で何もしません。各 について、現在の行のものだけでなく、すべてtr
のを見ています。を取り出しても、コードは引き続き機能します。 td
.each()
デモ: http://jsfiddle.net/jtbowden/dgswh/
次に、フィルタリングする代わりに、関数を.css()
呼び出しに追加します。
var colors = {'1': 'green', '2': 'orange', '3': 'red', '4': 'blue' };
$("td").css('background-color', function(index, value) {
var txt = $(this).text();
if(colors.hasOwnProperty(txt)) {
return colors[txt];
}
return value;
});
デモ: http://jsfiddle.net/jtbowden/dgswh/2/
これにより、コードが 4 回ではなく 1 回の呼び出しに削減されます (各 に対して 1 回だけ実行されますtd
)。そのテーブルだけに限定したい場合は、セレクターを変更します。
$(".myGridView1 td").css('background-color', function(index, value) { ... });
ファローアップ
td
色を変更した後に からテキストを削除するには、次のようにします。
$("td").css('background-color', function(index, value) {
var txt = $(this).text();
$(this).text(""); // ADD THIS LINE
if(colors.hasOwnProperty(txt)) {
return colors[txt];
}
return value;
});
td
一致する のテキストのみを削除する場合は、次の行を移動します。
$("td").css('background-color', function(index, value) {
var txt = $(this).text();
if(colors.hasOwnProperty(txt)) {
$(this).text(""); // MOVE TO HERE
return colors[txt];
}
return value;
});
スタイルを設定せずにテーブル セルを空にすると、幅が 0 になるか、行のすべてのセルが空の場合、行が高さが 0 になる可能性があることに注意してください。この場合は、CSS にmin-height
とのmin-width
定義を追加するか、次のように変更します。td
$(this).text("")
$(this).html(' ')
デモ: http://jsfiddle.net/jtbowden/dgswh/5/
番号を保持したいが、表示したくない場合は、の内容をtd
hidden または invisibleでラップできdiv
ます。
$(this).wrapInner("<div style='visibility:hidden'>");
または:
$(this).wrapInner("<div style='display:none'>");
デモ: http://jsfiddle.net/jtbowden/dgswh/6/