0

更新:申し訳ありませんが、IE9が適切に構成されていませんでした。ActiveX要素の使用を受け入れるように設定されている必要があります。私がそれをした後、それは非常にうまくいきました。混乱してすみません。

質問:各3番目のテーブルの列の色を変更したいのですが。

初期DOM

  <table border="1">
    <tr><td>TD #0</td><td>TD #1</td><td>TD #2</td></tr>
    <tr><td>TD #3</td><td>TD #4</td><td>TD #5</td></tr>
    <tr><td>TD #6</td><td>TD #7</td><td>TD #8</td></tr>
  </table>

結果DOM

  <table border="1">
    <tr><td>TD #0</td><td>TD #1</td><td>-here my color changed green- TD #2</td></tr>
    <tr><td>TD #3</td><td>TD #4</td><td>-here my color changed green- TD #5</td></tr>
    <tr><td>TD #6</td><td>TD #7</td><td>-here my color changed green- TD #8</td></tr>
  </table>

これを達成するために、私はCSS-3疑似クラスで試しました:

$("tr td:nth-child(3)").css("color", "green");

FF、Chromeでは正常に動作しますが、IE9では失敗しました。

対応するJqueryフィルターの式は何でしょうか?

前もって感謝します

4

1 に答える 1

2

更新:私はあなたがこれを複数trの時間行っていることに気づいていませんでした。これは適切な解決策です

$("tr").each(function(){
    $(this).children("td:eq(2)").css("color","red");
});

以下の解決策は、最初のソリューションでのみ機能しtrます。

jqueryセルクターはdom要素の配列を返すため、単純な配列インデックスを使用していつでも要素を直接取得できます。

var elem = $("tr td")[2];
$(elem).css("color","red");

これはネイティブのjQueryであり、cssに依存しないため、これも機能します。

$("tr td:eq(2)").css("color", "red");

注:これらの手法はどちらも0ベースのインデックスを使用します

http://api.jquery.com/eq-selector/

于 2012-07-02T08:52:33.113 に答える