用jquery获取一个值两次

时间:2009-09-02 14:42:11

标签: javascript jquery forms

我在jquery中有这段代码:

    $("#order_btn").click(function(){
        var totalprice = $(".price_amount").text();
        $("#totalprice").val(totalprice);
    });

当我提交带有隐藏价值的表格时,我将获得两次总价值,如果它的200000我将获得200000200000.为什么?

<input type="hidden" value="" name="totalprice" id="totalprice">
<input id="order_btn" type="submit" class="submit" name="submit" value="submit">

价格amout将在此处定义:

<span class="price_amount">75000</span>

我有两次这个span标签,但是我需要它们两种,有没有办法只获得一个值?

3 个答案:

答案 0 :(得分:0)

您确定网页上只有price_amount类的一个元素吗?如果你在分配了totalprice之后给它一个断点(或一个警告)你得到了什么?

另一件事 - 我不确定这是否重要,但我会将此代码放在表单提交处理器中,而不是单击。

答案 1 :(得分:0)

因为您有两个<span>元素,其类别为“price_amount”。

特别是这条线

var totalprice = $(".price_amount").text();

当您从jQuery集中调用.text()时,它将为所有选定节点聚合该值并将其返回。

因此,要么确保只有一个带有该类名称的范围,要么使您的选择器更具特异性/粒度,以便您只检索所需的节点。

答案 2 :(得分:0)

您最有可能拥有多个带有“price_amount”类别的span标记

尝试使用

var totalprice = $(".price_amount:first").text();

var totalprice = $(".price_amount:eq(0)").text();
// therefore you can access the second span tag like this
var totalprice = $(".price_amount:eq(1)").text();
// and so on...

如果这样做有效,请检查您的代码是否有多余的span标记

编辑: 应该是现在

编辑2: 如果您的totalprice变量应该是所有“price_amount”跨度的总和,请考虑以下事项:

var totalprice = 0;
$.each($('.price_amount'),
      function()
      {
        totalprice += parseInt($(this).text());
      });