我在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标签,但是我需要它们两种,有没有办法只获得一个值?
答案 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());
});