0

画像要素の左位置にアクセスできません。これが私の jsFiddleです。アラート ボックスには何も表示されません。

<!DOCTYPE html>
<html>
<img src="pan.jpg" id="uno" width="600" />
<style>
#uno
{
position:relative;
left:100px;
}
</style>
<script>
     alert(document.getElementById("uno").style.left);
</script>
</html>
4

2 に答える 2

3

JavaScript の style プロパティは、インライン スタイルにのみアクセスできます。これで動作することがわかります: ( jsFiddle )

<img src="pan.jpg" id="uno" width="600" style="left:125px;" />

leftJavaScript でのみ設定するか、CSS でクラスを使用して、スタイルではなくクラスのオブジェクトを確認することをお勧めします。

于 2013-03-14T11:29:52.973 に答える
0

代替ソリューション(インライン スタイルを定義しない場合、少し複雑ですが)

//document.styleSheets gives the list of available stylesheets for the document
//Here we have only one stylesheet hence document.stylesheets["0"] gives us the only stylesheet    
//document.stylesheets["0"].rules gives the object with defined css rules
var rules = document.styleSheets["0"].rules
//iterating over that object to find the object which has css for element ID "uno"
for(property in rules){
  if(rules.hasOwnProperty(property)){
    if(rules[property].selectorText === "#uno"){
      alert(rules[property].style.left);
    }
  }
}

更新済みファイル

<!DOCTYPE html>
<html>
<img src="pan.jpg" id="uno" width="600" />
<style>
#uno
{
position:relative;
left:100px;
}
</style>
<script>
  var rules = document.styleSheets["0"].rules
  for(property in rules){
    if(rules.hasOwnProperty(property)){
      if(rules[property].selectorText === "#uno"){
        alert(rules[property].style.left);
      }
    }
  }
</script>
</html>

むしろ、私たちのためにすべてのハードリフティングを行うjqueryを使用してください

于 2013-03-14T11:48:15.260 に答える