如何通过ID获取和添加两个元素的值

时间:2012-10-07 19:17:37

标签: javascript jquery

<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而不是数字。

如何在这两个字段中添加值?

2 个答案:

答案 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]+/)));

这只是从跨度中获取数字,然后解析它。