2015-11-11 16 views
5

Kodum, hangi radyo düğmesine basıldığını kontrol eden basit bir işlevdir ve bu radyo düğmesinin değerini var input = 0; numaralı telefonuma ekler. Ancak, çalıştığım gibi yanlış bir şey yaptığımı biliyorum ama çıktı yanlış. if ifadelerinden biri doğru olduğunda, (0) değeri artık getElementById("small").value'un kendisinin artı değerine eşit olmak yerine, şimdi 10'un aksine yazdırır.Javascript + = eşdeğeri?

Java'da biliyorum, input += getElementById("small").value;'a benzer bir sözleşme vardı, ancak bu işe yaramıyor. Aşağıdaki örneğimde de görebileceğiniz gibi, input = input + /*code*/;'un alternatifini denedim ama yine de şansım yok.

JavaScript’e yeni ama Java’ya çok aşinayım. Burada sadece yanlış sözdizimi kullanıyorum, ancak tüm Google aramalarım büstü.

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

metin alanının değerini temsil eder. – David

+0

Herkese çok teşekkür ederim! – SenjuXo

cevap

5

Bir dizeyle aritmetiği yapmaya çalışıyorsunuz. .value özelliğinin bir dize olduğundan, document.getElementById("....").value ifadelerinizin her birinin etrafında parseInt() kullanmanız gerekir.

Örnek:

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

ahhhh! Bu çok daha mantıklı. .value dönüş türüne bakıyordum ve nasıl ayrıştırılacağını anlamaya çalışıyordum. Her çeşit Parse var mı? parseDouble/Int/Float, vb? – SenjuXo

+0

@SenjuXo sadece "parseInt" ve "parseFloat"; JavaScript'in (yerel) 'parseDouble' içermiyor. Bu cevaba bakınız: http://stackoverflow.com/a/21278297/2057919 –

+0

Alrighty! teşekkür ederim! – SenjuXo

1

Sen bir tamsayı veya parseInt veya parseFloat ile bir float olarak bir sayıya .value dönüştürmek gerekir. .value bir dizedir.

2

değeriniz varsayılan olarak bir sayı değil, bir dize var. Önce bunu ayrıştırmak lazım:

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

Sen sayıya dönüştürmek için dize değeri önce bir ek + simgesini ekleyebilirsiniz:

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

JavaScript dinamik yazılan dil, statik değildir java gibi daktilo . document.getElementById ("small"). Value, parseInt() ile int'ye dönüştürülmesi gereken bir dize döndürür. yardımcı olur

Ho [e :)

1

Ayrıca değerinden bu link-

döndü değere başvurabilir bir dizedir. Herhangi bir aritmetik işlem yapmadan önce int olarak dönüştürmeniz gerekir.

JavaScript, dinamik yazılan bir dil olup java gibi yazılmıştır.

Dönüş Değeri: Bir Dize sen dom gelen sayı değerlerini kapma zaman `parseInt (değer)` Bir metin değerinden ziyade bir tamsayıya dönüştürmek için gereken