3

HTML要素から表示属性を取得したい。インライン CSS を記述すると機能しますが、クラスを使用すると機能しません。

これは機能します:

<p id="p1" style="display:none;">This is some text.</p>​
<script>alert(document.getElementById("p1").style.display);</script>

http://jsfiddle.net/bwzAN/2/

これは動作しません:

<style>.deneme{ display: none; }​&lt;/style>
<p id="p1" class="deneme">This is some text.</p>​
<script>alert(document.getElementById("p1").style.display);</script>

http://jsfiddle.net/bwzAN/7/

なんで?2 番目のケースを最初のケースのように動作させることは可能ですか? どうすれば修正できますか?

4

3 に答える 3

5

試してみてくださいgetComputedStyle()- DEMO

$(document).ready(function(){
    var elem = document.getElementById("p1");
    var st   = window.getComputedStyle(elem, null).getPropertyValue("display");

    alert( st );
});
于 2012-09-11T20:12:53.210 に答える
1

getComputedStyle()/getPropertyValue() を見てください。プロパティ .style.display は、既に述べたようにインライン スタイル プロパティのみを返します。

var yourDisplay = window.getComputedStyle(document.getElementById('yourID'), null).getPropertyValue('display');
于 2012-09-11T20:13:11.283 に答える
1

セットアップではなく、「計算されたスタイル」(つまり「最終結果」) を取得する必要があります。

私はあなたを助けるためにJSFiddle(あなたの動かないオリジナルのフォーク)を作成しました:http://jsfiddle.net/Jamesking56/qTKYK/2/

于 2012-09-11T20:15:47.937 に答える