2015-11-11 5 views
5

मेरा कोड एक साधारण कार्य है जो जांचता है कि कौन सा रेडियो बटन दबाया गया था, और उस रेडियो बटन का मान मेरे var input = 0; पर जोड़ता है। हालांकि, मुझे पता है कि मैं कुछ गलत कर रहा हूं क्योंकि यह काम करता है लेकिन आउटपुट गलत है। जब if कथन में से एक सत्य है, तो इनपुट (0) के बजाय अब getElementById("small").value के नए मान के बराबर है, यह को 10 के विपरीत प्रिंट करता है।जावास्क्रिप्ट + = समतुल्य?

मुझे जावा में पता है कि input += getElementById("small").value; जैसा कोई सम्मेलन था लेकिन यह काम नहीं कर रहा है। तो जैसा कि आप नीचे मेरे उदाहरण में देख सकते हैं, मैंने input = input + /*code*/; के विकल्प की कोशिश की लेकिन अभी भी कोई भाग्य नहीं है।

मैं जावास्क्रिप्ट के लिए नया हूं लेकिन जावा से बहुत परिचित हूं। मुझे कल्पना है कि मैं सिर्फ गलत वाक्यविन्यास का उपयोग कर रहा हूं लेकिन मेरी सभी Google खोज एक बस्ट हैं।

function calculate() 
{ 
    var input = 0; 
    if (document.getElementById("small").checked) 
    { 
     input = input + document.getElementById("small").value; 
    } 
    else if (document.getElementById("medium").checked) 
    { 
     input = input + document.getElementById("medium").value; 
    } 
    else if (document.getElementById("large").checked) 
    { 
     input = input + document.getElementById("large").value; 
    } 
    else 
    { 
     alert("failed"); 
    } 

    document.getElementById("outar").innerHTML = input; 
} 
+0

आप 'parseInt (मान)' किसी पाठ मान के बजाय एक पूर्णांक में कन्वर्ट करने के लिए जब डोम से संख्या मान संकलित की जरूरत के मान का प्रतिनिधित्व। – David

+0

आपको बहुत बहुत धन्यवाद! – SenjuXo

उत्तर

5

आप एक स्ट्रिंग के साथ अंकगणित करने की कोशिश कर रहे हैं। आप parseInt() अपने document.getElementById("....").value भाव से प्रत्येक के आसपास का उपयोग करने के क्योंकि .value संपत्ति एक स्ट्रिंग है की जरूरत है।

उदाहरण:

input += parseInt(document.getElementById("small").value); 
+0

आह! यह बहुत अधिक समझ में आता है। मैं वापसी के प्रकार के बारे में देख रहा था और इसे समझने की कोशिश कर रहा था कि इसे कैसे पार्स किया जाए। क्या सभी प्रकार के पार्स हैं? पार्स डबल/इंट/फ्लोट, आदि? – SenjuXo

+0

@ सेनजूक्सो बस 'parseInt' और' parseFloat'; जावास्क्रिप्ट में एक (मूल) 'parseDouble' नहीं है। http://stackoverflow.com/a/21278297/2057919 –

+0

Alrighty: इस जवाब मिलते हैं! धन्यवाद! – SenjuXo

1

आप एक पूर्णांक या parseInt या parseFloat साथ एक नाव के रूप में एक नंबर करने के .value बदलना होगा। .value एक स्ट्रिंग है।

2

आपका मूल्य डिफ़ॉल्ट रूप से एक नंबर नहीं है, यह एक स्ट्रिंग है। आप पहली बार यह पार्स करने के लिए मिल गया:

input += parseInt(document.getElementById("large").value); 
2

आपको यह संख्या में बदलने के लिए में स्ट्रिंग मान पहले एक अतिरिक्त + प्रतीक जोड़ सकते हैं:

input += +document.getElementById("large").value; 
1

जावास्क्रिप्ट गतिशील रूप से लिखा गया भाषा, स्थिर नहीं जावा की तरह टाइप किया । document.getElementById ("छोटे")। मान एक स्ट्रिंग (जो parseInt साथ int करने के लिए परिवर्तित किया जा करने की जरूरत है देता है)।

हो [ई है कि मदद करता है :)

1

इस link-

मूल्य से लौटे मूल्य का उल्लेख कर सकते एक श्रृंखला है। किसी भी अंकगणितीय परिचालन करने से पहले आपको इसे int में परिवर्तित करना होगा।

जावास्क्रिप्ट एक गतिशील रूप से टाइप की गई भाषा है, जावा की तरह स्थिर टाइप नहीं है।

वापसी मूल्य: एक स्ट्रिंग, पाठ क्षेत्र

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