0

最初の文字に基づいて、テーブルの 4 列目のテキストの色を変更しようとしています。最初の文字が「+」の場合、色は緑になります。最初の数字が「-」の場合、色は赤で、どちらでもない場合は黒のままです。以下は私が書こうとした Jquery コードですが、 each() の概念はまだはっきりしていません。

  $("tr td:eq(3)").each(function (i) {

    if (this.html().charAt(0) == '-') {
        this.css('color' , 'red');
    } 

    if (this.html().charAt(0) == '+') {
        this.css('color' , 'green');
    } 

  });  

HTML は次のとおりです。

<table>
  <tr>
    <td>1</td>
    <td>A</td>
    <td>x</td>
    <td>-10</td>
  </tr>
  <tr>
    <td>2</td>
    <td>B</td>
    <td>y</td>
    <td>+25</td>
  </tr>
  <tr>
    <td>3</td>
    <td>C</td>
    <td>z</td>
    <td>66</td>
  </tr>
</table>

ありがとう!

4

2 に答える 2

2

あなたのコードはプレーンなJavaScriptオブジェクトであり、以下を使用するオブジェクトthisが必要です。jQuery$(this)

var col;
$("tr td:nth-child(4)").each(function(i) {
    col = $(this);
    if (col.html().charAt(0) == '-') {
        col.css('color', 'red');
    }

    if (col.html().charAt(0) == '+') {
        col.css('color', 'green');
    }
});​

編集:あなたの使用はeq意図した効果を持っていません、私は使用してコードを更新しましたnth-child

于 2012-12-21T06:27:02.577 に答える
2

私はあなたのコードだけにわずかな変更を加えましたが、これはあなたが望むように機能します。

$("tr").each(function () {
    var data = $(this).find("td:eq(3)").text();
    if(data.charAt(0) == '-')
    {
       $(this).find("td:eq(3)").css('color' , 'red');        
    }
    else if(data.charAt(0)== '+')
    {
       $(this).find("td:eq(3)").css('color' , 'green');           
    }
  });
于 2012-12-21T06:41:09.557 に答える