2011-06-03 7 views
8

मैं जावास्क्रिप्ट का उपयोग कर किसी ऑब्जेक्ट का मूल सीएसएस चौड़ाई मान प्राप्त करने का प्रयास कर रहा हूं। हालांकि, अगर मैं उपयोग करता हूं:जेएस स्टाइल गुण रिक्त

var originalWidth = document.getElementById(<idOfObject>).style.width; 

यह हमेशा खाली हो जाता है। मैंने यह भी देखा है कि इस वाक्यविन्यास का उपयोग करके मैं जिस भी संपत्ति का उपयोग करता हूं वह खाली हो जाएगा। मुझे यकीन है कि दिया गया तत्व मौजूद है,

alert(document.getElementById(<idOfObject>)); 

मुझे सही वस्तु दिखाता है।

क्या कोई मुझे इस समस्या को हल करने में मदद कर सकता है?

उत्तर

8

काम आप शायद मूल्य जो सीधे नहीं इस तरह स्टाइलशीट में स्थापित किया गया था, प्राप्त करने की कोशिश करेंगे:

document.getElementById(<idOfObject>).style.width = '100px'; 

आप की चौड़ाई प्राप्त करना चाहते हैं

var width = document.getElementById(<idOfObject>).offsetWidth; 
+0

आंतरिक विड्थ या ऑफसेटविड्थ? इसके अलावा मैं जोड़ूंगा कि आप इनलाइन शैली गुणों तक पहुंच सकते हैं, जैसे:

...
marcosfromero

+0

मैंने अभी इसे स्वयं समझ लिया, आप सही थे! जवाब के लिए धन्यवाद! – Tiddo

+0

उनमें से कोई भी नहीं, सही क्लाइंटविड्थ है; ऑफसेटविड्थ चौड़ाई प्लस सीमा चौड़ाई देता है। आंतरिक सीएसएस बाहरी सीएसएस या यहां तक ​​कि स्टाइल सेट – drodsou

0

मेरा मानना ​​है कि इस

function getWidth() 
{ 

x = document.getElementById(<idOfObject>) 
return x.offsetWidth; 
} 
1
<div style="width:10%" id="mydiv" > 
: तत्व आप innerWidth संपत्ति का उपयोग कर सकते

या

<div style="width:10px" id="mydiv" > 

var mydiv = document.getElementById("mydiv"); 
var curr_width = mydiv.style.width; 
alert(curr_width); 

यह

1

मेरे लिए काम करता है मैं इसे करने की कोशिश की और मैं मूल्य

प्राप्त कर सकते हैं http://jsfiddle.net/xyd95/

ठीक है, जब तक कि width कोई इकाई है

http://jsfiddle.net/xyd95/1/

+0

द्वारा सेट की गई चौड़ाई को कुछ भी वापस नहीं कर सकता है, अंतर यह था कि मैं मान को बाहरी स्टाइलशीट में सेट कर दूंगा। जैसा कि bjornd ने कहा, object.style.width केवल ऑब्जेक्ट की इनलाइन DOM प्रॉपर्टी दिखा सकता है। – Tiddo

9

पिछले उत्तरों में से कोई भी सही नहीं था।

संपत्ति आप देख रहे हैं clientWidth है, लेकिन नहीं "शैली" में

document.getElementById('idOfObject').clientWidth; 

कि दोनों "चौड़ाई" पर काम करेंगे बाहरी सीएसएस, शैली SECCION या यहाँ तक कि इनलाइन शैली = "चौड़ाई के साथ सेट : 80px "

जनरल ध्यान दें: <div width="500"> का उपयोग नहीं करते के रूप में यह कोई प्रभाव नहीं

उल्लेख offsetWidth दूसरा सबसे अच्छा विकल्प है, लेकिन यह सही wid वापस नहीं करता है सीएसएस में सेट, लेकिन वह चौड़ाई प्लस सीमा चौड़ाई

अन्य विकल्प जैसे innerWidth जो विंडो ऑब्जेक्ट के साथ काम करता है, मेरे लिए divs पर काम नहीं करता था।

style.width को सही ढंग से काम नहीं करने का यह विचित्र मुद्दा, मेरे बहुमूल्य समय के 2 घंटे बर्बाद हो गया :-), उम्मीद है कि भविष्य में किसी और के लिए यह उत्तर शॉर्ट्स होगा।