7

たとえば、次のCSSクラスがあります。

.upComing{ background:#ccc; font-weight:bold; }

私のHTMLには、次のように、いくつかの行にそのクラスが適用されているテーブルがあります。

<table>
  <tr> <td></td> <td></td> </tr>
  <tr> <td></td> <td></td> </tr>
  <tr class='upComing'> <td></td> <td></td> </tr>
  <tr> <td></td> <td></td> </tr>
  <tr class='upComing'> <td></td> <td></td> </tr>
</table>

これまでのところ、とても良いですが、JavaScriptを介して、tdクリックをリッスンするイベントがあり、行の色を取得したいと思います(行のクラスを取得できることはわかっていますが、この場合は取得できる必要がありますクラスの色)。

テーブルをExcelファイルにエクスポートでき、CSSクラスの場合、行の色がExcelファイルに適用されないため、これを行う必要があります。htmlを送信する前にこの色を各tdに適用したいと思います。エクセルジェネレーターに。

PS:テーブルは私たちが作成したjQueryプラグインから動的に生成され、まだ作業中ですが、十分に自信が持てたら、一般に公開します。

--Update--これがこのトピックに関する更新です。これには確かに純粋なjavascriptソリューションがあります。これを確認するには、jQueryのソースコードに飛び込む必要がありました。解決策は次のとおりです。

1)目的の要素をポイントします

var tr = $("tr.upComing").first()[0]; 

2)要素のCOMPUTEDSTYLEを取得します

var css = window.getComputedStyle( tr );

3)計算されたスタイルのプロパティ値を取得します

var color = css.getPropertyValue( "background-color" );

現時点では、MacのFF、Safari、Chromium、Operaでのみテストを行っています。誰かがこれをIEで試して、すばらしいフィードバックを提供してくれるとしたら。

4

3 に答える 3

7

jquery CSSメソッドを使用して、要素から背景色を取得できます:http: //api.jquery.com/css/

var color = $(this).css("background-color");
于 2012-12-20T20:46:21.270 に答える
2

以下はそれを行う必要があります

$('.upComing:eq(0)').css('backgroundColor') 
于 2012-12-20T20:46:10.353 に答える
1

それが役に立ったら、私は同じ問題を抱えていて、あなたの場合は以下を使用していることがわかりました:

a = document.getElementsByClassName('upcoming');
console.log(a.style.backgroundColor);

使用しない場合は機能します:

document.addEventListener( "DOMContentLoaded"、function(event){}); <

ただし、代わりに、bodyタグを閉じる直前のjsファイルを参照してください。これはダーティと見なされます。

于 2018-11-16T08:44:31.060 に答える