2012-03-02 13 views
-1

私は、各行にいくつかのスタイルクラス(サーバーサイドコードを介して動的に)が割り当てられているHTMLテーブルを持っています。htmlテーブルに割り当てられたCSS属性を取得する方法は?

HTMLは次のようになります。

<tr id= "2977" class ="x y z a b c" > 

私は、行の背景色にアクセスするためにこれを使用しています:

document.getElementById("2977").style.backgroundColor 

をしかし、私はスタイル属性のいずれかを読み取ることができないのです。上記の行はnullを返します。 Chromeの行要素を調べると、行の16進数の色が表示されます。

要素の現在の背景色を読み取るにはどうすればよいですか?

+0

さらにhtmlを投稿する必要があります。あなたが投稿したjsが有効なので。 trはテーブル内にありますか? –

答えて

1

このhttp://jsfiddle.net/UvYxc/ HTML

取り組んでいる

<table> 
    <tr style="background:red;" id= "2977" class ="x y z a b c" > 
     <td>RED</td> 
    </tr> 
</table> 

JS

document.getElementById("2977").style.backgroundColor="blue" 
alert(document.getElementById("2977").style.backgroundColor);​ 

それとも

document.getElementById("2977").className += " blue"; 
document.getElementById("2977").className += " red"; 

function getStyle(el, cssprop){ 
    //IE 
    if (el.currentStyle) 
     return el.currentStyle[cssprop] 
    //Firefox 
    else if (document.defaultView && document.defaultView.getComputedStyle) 
     return document.defaultView.getComputedStyle(el, "")[cssprop] 
    else //try and get inline style 
     return el.style[cssprop] 
} 

var el = document.getElementById("2977"); 
alert(getStyle(el, "backgroundColor")); 
alert(getStyle(el, "color")); 

フィドルhere

+0

これはまさに私がやっていることです。違いは、(手動で割り当てるのではなく)外部スタイルシートファイルによって色が設定されることだけです。私はあなたが書いた2行目からそれを読んでいます。 –

+0

このフィドルを試してください、それはあなたが意味するものですか? http://jsfiddle.net/UvYxc/1/ –

+0

はい。しかし、私の場合は固定色が割り当てられていません。いくつかのスタイルシートクラスが色を割り当てています。私はスタイルシートがどのように動作しているのか知りません。 –

2

次の方法でスタイル属性を読み取ることができますか?あなたが使用することができればまた

document.getElementById("2977").getAttribute("style"); 

、jQueryのコードは、右私のために実際に見える

$('#2977').css('background-color'); 
+0

getAttribute( "style")がnullを返す –

1

を試してみてください。たぶん詳細があれば、私はあなたを助けることができます。

+0

あなたはどのような詳細が必要か教えてください。 –

+0

テーブルを宣言するhtmlコード。それはあなたがJavaScriptコードよりもエラーがある可能性が高いです。 – user1242756

1

ページがロードされた後、あなたはJavascriptを実行しています。

テストとしてこれを試してみてください:

function init() { 
    document.getElementById("2977").style.backgroundColor = "black"; 
    alert(document.getElementById("2977").style.backgroundColor); 
} 
window.onload = init; 
4

あなたはこのような何かを行うことができます任意のjavascriptのLIBSに使用しないことを探しているなら:

row = document.getElementById("2977") 
var bgStyle = window.getComputedStyle(row).getPropertyValue("background-color"); 

を私はすぐにこれを見て、私は落とし穴があるかどうかわからない。

+0

、それは働いた。 –

+0

はすべての行に同じrgbの色を与えます。しかし、すべての行について私は異なる背景色を持っています –

+0

どのようにあなたのTRをループしていますか? getComputedStyleから受け取った価値をどうやって調べていますか? – dmbania

関連する問題