2015-06-19 143 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