11

以下のコードで、背景色を設定しようとしています。ただし、背景色は空の文字列として返されます。理由はわかりません...JavaScriptタイプと関係がありますか?

function function1(){
var color = document.getElementById('rg_vw.national_avg').style.backgroundColor;
//this below appears as an empty alert at runtime. it's an empty string. 
alert(color)
}

健全性チェックと同じように、「value」プロパティを使用すると、その特定のフィールドの正しい値が出力されます...したがって、backgroundColorが空の文字列である理由について少しイライラしています。

//this works just fine
var value = document.getElementById('rg_vw.national_avg').value
alert(value)   
4

1 に答える 1

21

要素自体にbackgroundColorを直接定義していない限り、スタイルプロパティの値を使用getComputedStyle()または取得する必要があります。currentStyle

複数のブラウザと互換性のあるメソッドは次のようになります。

function getStyle(el,styleProp)
{
    if (el.currentStyle)
        return el.currentStyle[styleProp];

    return document.defaultView.getComputedStyle(el,null)[styleProp];
}

jsFiddleで実際の例を見ることができます。

詳しくは:

  • の詳細については、このページを参照してくださいgetComputedStyle()
  • (IE)の詳細については、このページを参照してください。currentStyle
  • ブラウザの互換性の問題の詳細については、このページを参照してください。
于 2012-05-11T17:50:54.707 に答える