0

値の比較に基づいてテーブル行の背景色を変更する条件があります。2 つのセルを比較し、それらのセルのみの背景色を返す別の条件を統合したいと考えています。

私はすでにテーブルでループを実行しています

            for (i = 0; i < rows.length; i++) {
            cells = rows[i].getElementsByTagName('td');

これは私が持っているものですが、各セルではなく列全体に色の結果を適用しています..

         if (cells[10].innertext !== cells[11].innerText)
                cells[10].style.backgroundColor = "red";
                cells[11].style.backgroundColor = "red";

         else 
            (cells[10].innertext == cells[11].innerText)
                cells[10].style.backgroundColor = "green";
                cells[11].style.backgroundColor = "green";

助けてくれてありがとう!

4

2 に答える 2

0

キャピタライゼーションの問題があります。最初innertextはですinnerText。また、条件ごとに複数のステートメントをグループ化するには、複数のステートメントをブロックに入れる必要があります。

elseまた、後に条件を付けるには、else if

        //-------------v
     if (cells[10].innertext !== cells[11].innerText) {
            cells[10].style.backgroundColor = "red";
            cells[11].style.backgroundColor = "red";
        //-------------v
     } else if (cells[10].innertext == cells[11].innerText) {
            cells[10].style.backgroundColor = "green";
            cells[11].style.backgroundColor = "green";
     }

論理的には2番目の条件は必要ありませんが、次のように変更できます。

     } else {

さらに、.textContent要素からテキストを取得する標準バージョンです。より幅広いブラウザサポートが必要な場合は、次のようにする必要があります。

var text1 = cells[10].textContent || cells[10].innerText
var text2 = cells[11].textContent || cells[11].innerText

...そして、比較のために変数を使用します。


最後に、次のように冗長にする必要はありません。

cells = rows[i].getElementsByTagName('td');

代わりにこれを使用できます。

rows[i].cells
于 2013-01-25T21:44:41.867 に答える
-1

Knockout.jsを見たことがありますか?これにより、値をグリッドにバインドしてから、それらに発生するイベントをサブスクライブできます。

于 2013-01-25T21:44:53.567 に答える