当我们在两个元素之间执行求和操作时,需要将它转换为数字,而不进行转换它会合并它们,因为element.val()
返回一个字符串。但是当我们执行其他操作(如乘法,减法或除法)时,它会给出预期的结果而不执行任何类型转换。
function add()
{
alert($("#first").val() + $("#second").val());
}
function divide()
{
alert($("#first").val() / $("#second").val());
}
function multi()
{
alert($("#first").val() * $("#second").val());
}
function subst()
{
alert($("#first").val() - $("#second").val());
}
<input type="text" Id="first" />
<input type="text" Id="second" />
<input type="button" Id="add" onclick="add()" value="+"/>
<input type="button" Id="divide" onclick="divide()" value="/"/>
<input type="button" Id="multi" onclick="multi()" value="*" />
<input type="button" Id="subst" onclick="subst()" value="-"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
答案 0 :(得分:6)
+
运算符用于连接字符串或添加数字(如果其中一个操作数是字符串,则解释器将支持连接)。但/
,*
和%
仅用于数字,因此解释器必须将操作数视为数字。
有关更多解释,这是我两天前提出的类似问题的answer。 (这很长,所以我不会再在这里重新发布)。