簡體   English   中英

使用JavaScript讀取div的寬度

[英]Read the width of a div with JavaScript

我正在嘗試在沒有jQuery的情況下讀取div的寬度。 我使用的代碼是:

JS:

var windowwidth = parseInt(document.getElementById("window").style.width);
window.onload = function start() {
    alert(windowwidth);
}

HTML:

<div id="window">
    <p>Lorem ipsum dolor sit amet.</p>
</div>

CSS:

#window {
    height: 250px;
    margin: 0 auto;
    width: 600px;
}

我不明白為什么這行不通,我在整個網站和google上四處尋找,無法找到解決方案。 我不想為此使用jQuery(這是一個小的自定義HTML5腳本,因此我不需要一件事就擁有那個巨大的庫),即使當我嘗試使用jQuery方法時,它仍然無法正常工作。

您不能保證在DOM准備就緒之前document.getElementById()將起作用(即返回所需的元素)。 因此,請嘗試:

window.onload = function() { // removed the name to avoid some IE leaks
    var windowwidth = parseInt(document.getElementById("window").style.width);
    alert(windowwidth);
}

不閱讀style屬性,而是閱讀元素的實際寬度:

window.onload = function(){
    alert(document.getElementById('window').offsetWidth);
}

offsetWidth是瀏覽器所說的寬度,例如,如果內容將其拉伸得更寬,則可能與您使用CSS設置的寬度不同。

如果您想了解jQuery的工作方式,請參見以下鏈接: https : //github.com/jquery/jquery/blob/master/src/dimensions.js

我會用jQuery來做這樣的事情。 您可以在此處找到所需的確切內容: http : //api.jquery.com/width/

僅在繪制元素后才能獲得style.width。 嘗試將您的代碼放入setTimeout()。 有時候對我有幫助

window.onload = function(){
    setTimeout(
       function(){ alert(document.getElementById('window').style.width); },
       200
    );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM