4

apex によって生成されたテーブルの一部の行を強調表示する際に問題が発生しました。

動的アクションと jQuery を使用して、単一の列を強調表示できました

jQuery:

$('tr td[headers="IDZ"]').each(function(){
  if(parseInt($(this).html()) == 12){
    $(this).attr('style','background-color:red');
  }
});

html の結果:

<td align="right" headers="IDZ" style="background-color:red">12</td>

正常に動作し、IDZ == 12 の列が赤くなりました。

しかし、行全体を強調表示したいので、親ノードを取得して<tr>「スタイル」を追加しましょう。

jQuery:

$('tr td[headers="IDZ"]').each(function(){
  if(parseInt($(this).html()) == 12){
    $(this).parent().attr('style','background-color:red');
  }
});

そして結果:

<tr class="even" style="background-color:red">

行は背景色を変更しませんでした。その理由はわかりません。Firefox と Chrome でテスト済み。

ヒントや解決策に感謝します。

マリオ

4

3 に答える 3

2

<tr> の背景を設定しても常に確実に機能するとは限りません。すべての子 <td> または <th> に設定することをお勧めします。

これを行う良い方法は、

$(this).parent().attr('style','background-color:red');

$(this).parent().addClass('highlightit');

次にcssを追加します

tr.highlightit td { background-color: red; }

これにより、そのテーブル行の下にあるすべてのテーブル データ要素の背景が赤になります。

于 2012-09-12T10:42:17.510 に答える
2

代わりに、この JS コードを試してください ( jsFiddle )。私のために働いた

$('tr td[headers="IDZ"]').each(function(){
  if(parseInt($(this).html()) == 12){
    $(this).parent().css('background-color','red');
  }
});​
于 2012-09-12T10:45:43.993 に答える
0

あなたはまた使用することができ.closest('tr')、私はtext代わりに使用しましたhtml

$('tr td[headers="IDZ"]').each(function(){
    if(parseInt($(this).text()) == 12){
        $(this).closest('tr').attr('style','background-color:red');
    }
});​

デモ

于 2012-09-12T10:51:31.873 に答える