2009-09-02 67 views
0

我有這樣的代碼jQuery中:得到一個值兩次與jQuery

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

當我提交此表與隱藏的價值,我會得到totalprice值的兩倍,如果它的20萬我會得到200000200000。爲什麼?

<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> 

我有這樣的跨度標籤兩次,但我需要他們兩個,有沒有辦法讓只有一個值?

+0

你確定你有一個單一的元素與類' price_amount'?如果是這樣,爲什麼不使用'id'而不是'class'? – SilentGhost 2009-09-02 14:50:02

+0

是兩個具有相同類名的元素! – datisdesign 2009-09-02 14:52:21

回答

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... 

如果這使得它的工作,檢查你的代碼一個多餘的跨度標籤

編輯: 應該是正確的,現在

編輯2: 如果你totalprice變量應該是所有你「price_amount」跨越的總和,應考慮以下幾點:

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

我已經嘗試過但id沒有給我任何價值! – datisdesign 2009-09-02 14:57:22

+0

這很奇怪,你應該能夠得到你的價格「price_amount」span標籤,如 嘗試使用$(「。price_amount」)。get()[0] .text() – gabtub 2009-09-02 15:12:53

+1

它應該是'$(「 .price_amount:first「)。text()' – SilentGhost 2009-09-02 15:14:38

0

您確定您的頁面上只有一個元素與price_amount類?如果在分配給它後你在分配點totalprice上放置了一個斷點(或一個警報),你會得到什麼?

另一件事 - 我不知道這是否重要,但我會把這個代碼放在你的表單提交而不是點擊處理程序。

+0

好吧,我會盡力:) – datisdesign 2009-09-02 14:49:33

0

因爲您有兩個類別爲「price_amount」的<span>元素。

這是該行特別

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

當你從一個jQuery設定呼叫.text(),它將聚集該值對所有選擇的節點,並將其返回。

因此,要麼確保您只有一個範圍w /該類名稱,或使您的選擇器更具體/粒度,以便您只檢索所需的節點。

+0

這就是對我有這個類的兩個元素:) thnx – datisdesign 2009-09-02 14:51:47