gpt4 book ai didi

Javascript 数学与我想象的不同

转载 作者:行者123 更新时间:2023-11-28 11:13:48 24 4
gpt4 key购买 nike

只是想知道是否有人知道我下面的 javascript 数学脚本有什么问题:

var new_total = (document.getElementById('qty').value * document.getElementById('pricepermetre').value) + document.getElementById('delivery').value

基本上应该是 (1 x 10) + 2 = 12

但是上面的脚本将交付值添加到末尾,例如 (1 x 10) + 2 = 102

这是完整的测试页面:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css" type="text/css" rel="Stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
</head>

<body>
<table class="mytable">
<tr>
<td>QTY:</td>
<td><input name="qty" type="text" id="qty" style="width:70px;" value="0" maxlength="9" />
KG </td>
</tr>
<tr>
<td>PRICE PER KG (EX TAX):</td>
<td>$
<input name="pricepermetre" type="text" id="pricepermetre" style="width:70px;" value="0" maxlength="9" /></td>
</tr>
<tr>
<td>DELIVERY FEE (EX TAX):</td>
<td>$
<input name="delivery" type="text" id="delivery" style="width:70px;" value="0" maxlength="9" /></td>
</tr>
<tr>
<td>TOTAL (EX TAX):</td>
<td><span id="totalpricespan">$0</span>
<input name="totalprice" type="hidden" id="totalprice" style="width:70px;" value="0" maxlength="9" />
<span style="color:#999;">(qty x price per kg + delivery fee)</span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="button" name="WorkOutTotals" id="WorkOutTotals" value="Work Out Totals" /></td>
</tr>
</table>
<script type="text/javascript">
$(document).ready(function(){

$('#WorkOutTotals').click( function() {

//work out new total
var new_total = (document.getElementById('qty').value * document.getElementById('pricepermetre').value) + document.getElementById('delivery').value

$("#totalprice").val(new_total);
$("#totalpricespan").html('$' + new_total);

});

});
</script>
</body>
</html>

提前致谢;)

最佳答案

document.getElementById('delivery').value 返回一个字符串,并且您将以字符串连接结束,因为 JS 使用 + 来连接字符串。

更新

JavaScript 的 + 根据您使用的不同具有不同的含义。令人惊讶的是,即使数字显示为字符串,* 也可以相乘。

试试这个

// `*` will infer that you wanted multiplication
alert("2" * 2);
alert("2" * 2);
alert(2 * "2");
alert(2 * 2);

// however, the `+` may take addition or string concatenation
alert("1" + "0");
alert("1" + 0);
alert(1 + "0");
alert(1 + 0);

sample code

关于Javascript 数学与我想象的不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com