Javascript 使用jquery两次获取一个值

Javascript 使用jquery两次获取一个值,javascript,jquery,forms,Javascript,Jquery,Forms,我在jquery中有以下代码: $("#order_btn").click(function(){ var totalprice = $(".price_amount").text(); $("#totalprice").val(totalprice); }); 当我提交这个带有隐藏值的表单时,我将得到两次总价,如果是200000,我将得到2000000000。为什么? <input type="hidden" value="" name=

我在jquery中有以下代码:

    $("#order_btn").click(function(){
        var totalprice = $(".price_amount").text();
        $("#totalprice").val(totalprice);
    });
当我提交这个带有隐藏值的表单时,我将得到两次总价,如果是200000,我将得到2000000000。为什么?

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

此处将定义价格金额:

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

我有两次这个span标记,但我都需要,有没有办法只获取一个值?

您确定页面上只有一个元素具有
价格\u金额
类?如果在分配完
totalprice
后,在其值上设置断点(或警报),您会得到什么


还有一件事——我不确定这是否重要,但我会将此代码放在表单提交的处理程序中,而不是单击。

,因为您有两个
元素,类为“price\u amount”

特别是这一行

var totalprice = $(".price_amount").text();
当您从jQuery集合调用
.text()
时,它将聚合所有选定节点的值并返回该值


因此,请确保您只有一个span w/该类名称,或者使选择器更具体/细化,以便只检索所需的节点。

您很可能有多个span标记带有类“price\u amount”

尝试使用

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

如果这样可以工作,请检查代码中是否有多余的span标记

编辑: 应该是现在

编辑2: 如果你的总价格变量应该是你所有的“价格-金额”跨度的总和,考虑如下:

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

您确定您有一个类为
price\u amount
的元素吗?如果是这样,为什么不使用
id
而不是
class
?是的,两个元素具有相同的类名!这很奇怪,您应该能够获取“price\u amount”span标记的值,就像使用$(“.price\u amount”)。get()[0]。text()应该是
$(“.price\u amount:first”)。text()
var totalprice = 0;
$.each($('.price_amount'),
      function()
      {
        totalprice += parseInt($(this).text());
      });