外部cssで設定されているstyleのプロパティの取得



0   名前: Jack : 2007/05/28(月) 20:17  ID:Sf5kdyRv sub-Q5
外部cssでstyleを設定してある要素のプロパティーって取得出来ないんでしょうか?

具体的には...
<div id="aaa" style="display:block">あいうえお</div>
というかんじでページ内にスタイルを設定した場合は
javascriptで
document.getElementByID("aaa").style.display
で"block"が返ってきます

外部cssを使ってスタイルを設定し
#aaa {
display:block;
}

htmlのほうでは
<div id="aaa" >あいうえお</div>
としておくとdocument.getElementByID("aaa").style.displayで空白が返ってきてしまいます。

外部cssで設定している値を正しく取得するにはどうしたらよいですか?

1   名前: 匿名 : 2007/05/28(月) 20:17  ID:3Dau8SBs sub-Cz
何度も同じことを書いてるんだけどな。
var node = document.getElementById ('aaa');
var value;

if (document.implementation.hasFeature ('CSS2', '2.0')) {  // Firefox, Opera, Safari
    value = document.defaultView.getComputedStyle (node, null).display;
}
else if (typeof node.currentStyle != 'undefined') {  // IE
    value = node.currentStyle.display;
}

なお、戻り値は計算値であり、指定値ではないことに注意。もし指定値が必要なら、document.styleSheets からひたすら CSS のツリー構造を辿ってセレクタ '#aaa' を探しても良いが、手間がかかるし、ほとんどの場合は計算値で事足りる。

一覧へ戻る