2013-03-25 6 views
200

के साथ div ऊंचाई प्राप्त करें jQuery का उपयोग किए बिना div की ऊंचाई कैसे प्राप्त करें पर कोई विचार?सादा जावास्क्रिप्ट

मैं इस प्रश्न के लिए स्टैक ओवरफ़्लो खोज रहा था और ऐसा लगता है कि प्रत्येक उत्तर jQuery के .height() पर इंगित कर रहा है।

मैं myDiv.style.height की तरह कुछ करने की कोशिश की है, लेकिन यह कुछ भी नहीं लौटे, तब भी जब मेरी div सीएसएस में अपनी width और height सेट था।

+0

http://stackoverflow.com/a/10118190/1172872 –

उत्तर

377
var clientHeight = document.getElementById('myDiv').clientHeight; 

या

var offsetHeight = document.getElementById('myDiv').offsetHeight; 

clientHeight गद्दी भी शामिल है।

offsetHeight में पैडिंग, स्क्रॉलबार और सीमाएं शामिल हैं।

+2

offsetheight does not को http://www.quirksmode.org/mobile/tableViewport_desktop.html – fearis

+2

आप कर सकते थे नीचे IE10 पर wokr 'scrollHeight' का भी उपयोग करें जिसमें निहित दस्तावेज़, ऊर्ध्वाधर पैडिंग और ऊर्ध्वाधर सीमाओं की ऊंचाई शामिल है। –

+4

'क्लाइंटहाइट' में पैडिंग भी शामिल है, इसलिए यह '$ .height()' – Eevee

13

jsFiddle

var element = document.getElementById('element'); 
alert(element.offsetHeight); 
6
var myDiv = document.getElementById('myDiv'); //get #myDiv 
alert(myDiv.clientHeight); 

clientHeight और clientWidth आप के लिए क्या देख रहे हैं।

ऑफ़सेट हाइट और ऑफसेटविड्थ ऊंचाई और चौड़ाई भी वापस करता है लेकिन इसमें सीमा और स्क्रॉलबार शामिल है। स्थिति के आधार पर, आप एक या दूसरे का उपयोग कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

2

अन्य उत्तर मेरे लिए काम नहीं कर रहे थे। पर height और/या width सेट होने पर मुझे w3schools पर मिला है।

पैडिंग को बाहर करने के लिए आपको केवल height और width की आवश्यकता है।

var height = document.getElementById('myDiv').style.height; 
    var width = document.getElementById('myDiv').style.width; 

आप downvoters: इस उत्तर कम से कम 5 लोगों में मदद मिली है, upvotes मैं प्राप्त हो गया है द्वारा पहचानने। अगर आपको यह पसंद नहीं है, तो मुझे बताओ कि मैं इसे ठीक क्यों कर सकता हूं। डाउनवॉट्स के साथ यह मेरा सबसे बड़ा पालतू शिखर है; आप शायद ही कभी मुझे बताओ कि आप इसे क्यों कम करते हैं।

+12

यह तब तक काम नहीं करेगा जब तक div के पास सेट 'ऊंचाई' और/या 'चौड़ाई' –

+0

मैंने सोचा था कि माना गया था और निहित किया गया था। क्या आप मेरे उत्तर में उस चेतावनी का उल्लेख करेंगे? – craned

+0

@ hopkins-matt मेरा अद्यतन उत्तर संतोषजनक है? – craned

1
<div id="item">show taille height</div> 
<script> 
    alert(document.getElementById('item').offsetHeight); 
</script> 

Jsfiddle

4

एक अन्य विकल्प getBoundingClientRect समारोह का प्रयोग है। कृपया ध्यान दें कि यदि तत्व का प्रदर्शन 'कोई नहीं' है तो getBoundingClientRect एक रिक्त रेक्ट वापस कर देगा।

उदाहरण:

var elem = document.getElementById("myDiv"); 
if(elem) { 
    var rect = elem.getBoundingClientRect(); 
    console.log(rect.height); 
} 
संबंधित मुद्दे