2011-02-04 10 views
10

मैं अपने JavaScript वैरिएबल को 1 जोड़ने की कोशिश कर रही है, लेकिन निम्न कोड की उम्मीद परिणाम नहीं देता है:तारों में संग्रहीत संख्यात्मक मानों को एक साथ कैसे जोड़ा जाए?

var val1 = document.getElementById('<%= rng1.ClientID %>'); 
var val2 = val1.value + "1"; 
alert(val2.value); 

मैं यह कैसे कर सकते हैं?

+2

क्या आप एक गणितीय रूप से जोड़ने की कोशिश कर रहे हैं? अर्थात। 3 + 1 = 4. या स्ट्रिंग के अंत में "1" जोड़ना? अर्थात। "3" + "1" = "31"। – anothershrubery

+0

आप या तो एक स्ट्रिंग या संख्या 'val2' को असाइन कर रहे हैं। इसलिए, यह एक वस्तु नहीं है और संपत्ति 'मूल्य' नहीं है। यदि आपको आश्चर्य है कि 'val1.value' क्यों मौजूद है:' val1' में कुछ HTML फॉर्म तत्व का संदर्भ है जिसमें संपत्ति 'मान' है। –

उत्तर

18

आप एक संख्या में val1.value में संग्रहीत स्ट्रिंग को बदलने के लिए समारोह parseInt() का उपयोग कर सकते हैं:

var val2 = parseInt(val1.value) + 1; 

ध्यान दें कि Number(val1.value) भी एक संख्या में अपने मूल्य में परिवर्तित कर देंगे।

-edit-
वाईसी का सुझाव के रूप में, अत्यधिक क्योंकि अगर आपकी स्ट्रिंग एक "0" स्ट्रिंग अष्टाधारी के रूप में व्याख्या की है के साथ शुरू होता parseInt(val1.value, 10) + 1; उपयोग करने के लिए सिफारिश की है। जैसे। parseInt("0123") == 83 और नहीं 123

+2

10 में से 'parseInt() 'में दूसरा तर्क जोड़ने के लिए मत भूलना, इसलिए यह गलती से एक ऑक्टल के रूप में मूल्यांकन नहीं करता है। – Yahel

+1

बेहतर अभी तक, यदि आपको आवश्यकता नहीं है, तो 'parseInt() 'का उपयोग न करें, केवल' +' या 'संख्या()' का उपयोग करें, न तो उन पार्स ऑक्टेट्स का उपयोग करें। जैसे '+ val1.value + 1'। 'parseInt()' मुख्य रूप से तारों की शुरुआत से संख्याओं को निकालने के लिए है, इसलिए जब तक आपकी स्ट्रिंग मान्य संख्यात्मक शाब्दिक हो, आपको इसकी आवश्यकता नहीं है। –

0

आप संख्या को जोड़ना होगा, तो यह कोशिश उद्धरण चिह्नों के बिना :-)

+0

और अन्य मान –

5

सरल और भी प्राथमिकता दी रास्ता + उपयोग करने के लिए एक नंबर करने के कास्ट करने के लिए किया जाएगा।

उदाहरण:

+'234'; // 234 
+'042'; // 42! It does not convert to octal 

आपके मामले में:

var val1 = +(document.getElementById('<%= rng1.ClientID %>').value); //() added just for the looks 
var val2 = val1.value + 1; // if val1 is 5, val2 will be 6 hooray! 
alert(val2); // just val2, since it's a plain number not an html input element 
0

एक बाहरी जावास्क्रिप्ट में फ़ाइल <%=ControlID.ClientID %> उपयोग नहीं कर सकते ग्राहक आईडी प्राप्त करने के लिए।

यदि आप बाहरी जावास्क्रिप्ट फ़ाइल का उपयोग कर रहे हैं तो आपको उस फ़ंक्शन पर क्लाइंट आईडी मान पास करने की आवश्यकता है।

1
parseInt($('.scpContainer').height()+200) 
+0

धन्यवाद के लिए parseInt() का भी उपयोग करें! यह मेरे लिए काम किया। – irishwill200

संबंधित मुद्दे