2011-04-16 54 views
1

當我在樣式表中設置屬性時,我無法訪問JavaScript函數中一個圖像元素的left屬性,但是當我在圖像標籤上使用內聯樣式時,它工作正常。爲什麼我無法在JavaScript函數中訪問此CSS屬性?

這裏是我的代碼:

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head id="Head1" runat="server"> 
     <title></title> 
     <script type="text/javascript"> 
      function moveObjRight(obj) { 
       var a = document.getElementById(obj); 
       alert(a.style.left) 
      } 
     </script> 
     <style type="text/css"> 
      #AS 
      { 
       top: 141px; 
       left: 118px; 
       position: absolute; 
       height: 25px; 
       width: 25px; 
      } 
     </style> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
      <div> 
       <img alt="asd" src="pic 3-4.jpg" id="AS" /> 
       <input type="button" value="Button" onclick="javascript:moveObjRight('AS');" /> 
      </div> 
     </form> 
    </body> 
</html> 

回答

3

您需要使用計算的樣式屬性。這可以通過具有簡單功能的跨瀏覽器方法來實現。請參閱quirks mode以瞭解以下功能的解釋。

function getStyle(el,styleProp) { 
    var x = document.getElementById(el); 
    if (x.currentStyle) 
     var y = x.currentStyle[styleProp]; 
    else if (window.getComputedStyle) 
     var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); 
    return y; 
} 
0

只是一個建議(不是答案),請使用jQuery

您將能夠通過以下代碼訪問左側屬性。

$('#yourdiv')。css('left');

參考:.css()

+0

它是* [模因(http://meta.stackexchange.com/questions/19478/the-many-memes-of-meta/19492#19492) *。 – 2012-11-21 18:07:07

相關問題