v2.5.2
Giriş yap

Javascript Hesap Makinesi Yapma Sorunu

yazilimyolcusu
378 defa görüntülendi

Aşağıdaki kodlar ile hesap makinesi yapmaya çalışıyorum. Konsol'da veya tarayıcıda hata vermiyor ama sonuç da vermiyor. Ne yapmam lazım acaba?

 <div id="sayi1" class="sayi1">
            <input type="text">
        </div>

        <select class="islemisareti">
            <option value="1">Toplama</option>
            <option value="2">Çıkarma</option>
            <option value="3">Çarpma</option>
            <option value="4">Bölme</option>
        </select>


        <div id="sayi2" class="sayi2">
            <input type="text">
        </div>

        <div id="esittir" class="esittir">
            =
        </div>

        <div id="islemsonucu" class="islemsonucu">
            
        </div>
        
        <button class="buton" onclick="islemsonucugoster()">Cevapla</button>

        <div id="dogru" class="dogru">
                
        </div>

        <div id="yanlis" class="yanlis">
            
        </div>
<script>
    function islemsonucugoster() {
        var islemsonuc = document.getElementById("islemsonucu");
        var sayi1 = parseInt(document.getElementById(sayi1));
        var sayi2 = parseInt(document.getElementById(sayi2));
        var secilendeger = document.getElementsByTagName(Option).value;

        if(secilendeger == 1) {
            islemsonuc = sayi1 + sayi2;
            islemsonucu.innerHTML = islemsonuc;

        } else if(secilendeger == 2) {
            islemsonuc = sayi1 - sayi2;
            islemsonucu.innerHTML = islemsonuc;

        } else if(secilendeger == 3) {
            islemsonuc = sayi1 * sayi2;
            islemsonucu.innerHTML = islemsonuc;

        } else if(secilendeger == 4) {
            islemsonucu = sayi1 / sayi2;
            islemsonucu.innerHTML = islemsonucu;
    }
}
Cevap yaz
Cevaplar (2)
ebykdrms
765 gün önce

Kodunuzda çok fazla yazım yanlışı var. Aşağıdaki şekliyle sizinki arasındaki farkları inceleyebilirsiniz:

function islemsonucugoster() {

    var islemsonuc = document.getElementById("islemsonucu");
    
    // var sayi1 = parseInt(document.getElementById(sayi1));
    // siz burada input'u değil, input'un kapsayıcısı olan div'i seçmeye çalışmışsınız.
    // input'u seçmiş olsaydınız bile input'un value'sini değil direkt input elementinin kendisini seçmiş olacaktınız.
    var sayi1 = parseInt(document.querySelector("#sayi1 > input").value);
    
    // var sayi2 = parseInt(document.getElementById(sayi2));
    // Burada da yine input'u değil kapsayıcısını seçmeye çalışmışsınız. sayi1 ile aynı.
    var sayi2 = parseInt(document.querySelector("#sayi2 > input").value);
    
    // document.getElementsByTagName(Option).value;
    // Ama hangi option'un value'si? Seçilmiş olan option'a ulaşmak için select elementinin değerini almalısınız. 
    var secilendeger = document.querySelector(".islemisareti").value;
    
    if(secilendeger == "1") {
        islemsonuc = sayi1 + sayi2;
        islemsonucu.innerHTML = islemsonuc;

    } else if(secilendeger == "2") {
        islemsonuc = sayi1 - sayi2;
        islemsonucu.innerHTML = islemsonuc;

    } else if(secilendeger == "3") {
        islemsonuc = sayi1 * sayi2;
        islemsonucu.innerHTML = islemsonuc;

    } else if(secilendeger == "4") {
        // islemsonucu = sayi1 / sayi2;
        // "islemsonuc" yazmak yerine "islemsonucu" yazmışsınız.
        islemsonuc = sayi1 / sayi2;
        
        // islemsonucu.innerHTML = islemsonucu;
        // burada da "islemsonuc" ve "islemsonucu" kelimelerini karıştırmışsınız.
        islemsonucu.innerHTML = islemsonuc;
    }
}
abdullahx
765 gün önce
var sayi1 = parseInt(document.getElementById(sayi1));
var sayi2 = parseInt(document.getElementById(sayi2));

Bu kullanım hatalı, div elemanının sayı değerini almaya çalışıyorsun. id değerini input a ver ve ardından value sunu al.

var sayi1 = +document.getElementById(sayi1).value
var sayi2 = +document.getElementById(sayi2).value