<script type="text/javascript">
$(document).ready(function() {
var sub_total = $("sub_total").text();
alert(sub_total);
var ship_total = $("ship_total").val()
alert(ship_total);
var new_total = sub_total + ship_total;
$('#new_total').html( new_total.toFixed(2));
});
</script>
我正在使用alert来测试输出,并且没有获得span ID内的值。
$<span id="sub_total"><?php echo $sub_total = number_format($this->cart->total(), 2); ?></span></td>
这确实在页面上正确显示,但警告是一个空白框。导致new_total
值为stat NaN
而不是数字。
如何在这两个字段中添加值?
答案 0 :(得分:1)
修改
你忘了获得价值 - 你只获得了元素
由于您已经在使用jQuery,因此可以获得类似
的值var sub_total = parseInt($("#sub_total").text());// this is where you need to use .text()
var ship_total = parseInt($("#ship_total").text());
或者如果你想保持普通的js ..
document.getElementById("sub_total").value
由于您的文本中包含$,因此在解析之前需要将其删除。您可以将正则表达式用作@Bubbles声明或您要删除$
符号的任何方法。例如。 substring .. split ..
$.trim($("#sub_total").text().split('$')[1])
或
$.trim($("#sub_total").text()).substring(1)
答案 1 :(得分:0)
wirey对问题的一部分进行了很好的回顾,但我认为这还不够。 “parseInt”不适用于“20美元”,您必须先删除美元符号。如果你感到懒惰,这不是一个好的正则表达式无法在短时间内解决:
var sub_total = parseInt($("#sub_total").text().match(/[0-9]+/)));
var ship_total = parseInt($("#ship_total").text().match(/[0-9]+/)));
这只是从跨度中获取数字,然后解析它。