2017-07-16 80 views
0

爲什麼警報窗口在這裏不顯示按鈕的寬度?我查看了類似的問題,但看起來我的問題太簡單了,無法在那裏找到答案。JavaScript:getElementById不返回按鈕的寬度

<!DOCTYPE html> 
<html> 
<body> 

<button id="jock" onclick="myFunction()">Try it</button> 

    <script> 
    function myFunction() 
     { 
     alert(document.getElementById("jock").style.width); 
     } 
    </script> 

    </body> 
    </html> 
+0

的'style'對象使您只有那些明確與元素相關聯的風格。你的'

回答

2

使用offsetWidth而不是樣式寬度。這將得到元素的真實寬度值。

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
    <button id="jock" onclick="myFunction()">Try it</button> 
 

 
    <script> 
 
    function myFunction() { 
 
     alert(document.getElementById("jock").offsetWidth); 
 
    } 
 
    </script> 
 

 
</body> 
 
</html>

+0

哇!有用!謝謝! – brilliant

+0

太棒了!將其標記爲答案:D表示未來的讀者。 @brilliant – Win

+0

我會的。我仍然在等待時限到期。 – brilliant

0

有一個在元素沒有聲明樣式屬性。所以document.getElementById("jock").style.width可能無法正常工作,

getComputedStyle可用於獲取窗口中按鈕的寬度。

function myFunction() { 
 
    var elem1 = document.getElementById("jock") 
 
    var style = window.getComputedStyle(elem1, null); 
 
    console.log(style.width) 
 
}
<button id="jock" onclick="myFunction()"> Try it 
 
    </button>