2015-06-19 42 views
-5

編寫一個名爲findTen的JavaScript函數,它從兩個文本字段中讀取兩個數字,然後輸出到一個div「True」,如果其中任何一個是10或者它們兩個都是10或者它們的總和是10.否則你的函數應該輸出「False」給div。這裏是一個布爾邏輯

這是我到目前爲止,但它不正確輸出。什麼是錯的我的if else語句:

<script> 
function findTen() { 
    var a = document.getElementById("one").value; 
    var b = document.getElementById("two").value; 
    var doTheMath = a + b; 

    if (a == 10 || b == 10) { 
     alert("true"); 
    } 
    else if (doTheMath == 10) { 
     alert("true"); 
    } 
    else { 
     alert(a b doTheMath); 
    } 
    document.getElementById("output").innerHTML = c; 
} 
</script> 
+0

這是我迄今爲止,並沒有正常工作。 Tyler

+0

@Tyler在你的問題將這個,問一個更具體的問題。 – t3dodson

+0

不要在評論中添加代碼,請重新編輯您的問題以包含它,點擊問題 –

回答

0

你的問題是,它處理的輸入字符串和不爲整數。 你需要做的是通過使用parseInt函數將字符串轉換爲整數

0

您的a和b變量是字符串,因爲您剛剛將它們從文本字段中取出。在JavaScript中,如果您在字符串上使用+運算符,它將連接它們。這是相當不幸的'功能'的JavaScript。若要從文本字段中的值相加,你首先需要將其轉換爲整數:

var doTheMath = parseInt(a) + parseInt(b); 

此外,我不認爲這種說法會在所有的工作:

alert(a b doTheMath); 

警報需要一個字符串,所以如果你想顯示這三個值,你需要連接它們,例如

alert(a + ' + ' + b + ' = ' + doTheMath); 
1

,我們在您發佈的代碼的一些錯誤:

  1. ab都是字符串,所以doTheMath實際上是一個字符串。在a = 5b = 5的情況下,doTheMath是'55'。他們需要以多種方式之一進行轉換。我選擇了Number

    var doTheMath = Number(a) + Number(b);

  2. alert(a b doTheMath)是語法不正確。你應該看看他們Concat的:

    alert(a + ' ' + b + ' ' + doTheMath);

  3. c你在最後的分配是不確定的。因此,在您if/else塊,你可能想要一個說法,如:c = false;

你可以看到所有這些問題的固定在這個jsfiddle