我有一個訂單表單,用戶可以使用ajax動態添加或刪除票證(類似於railscast#197,它是一個嵌套表單)。每張票據都會顯示票價(一個ruby實例變量 - @ event.ticket_price)和一個「價格」類。使用jQuery通過id加總/減去動態元素
我發現了一個片斷別處我適於總結與類的「價格」元素和在ID爲「TOTAL_PRICE」
$('#total_price').html(function() {
var a = 0;
$(".price").each(function() {
a += parseInt($(this).html());
});
return a;
});
這產生的總價格一個div顯示結果時附加票鏈路被點擊,但是當頁面最初加載時它什麼也沒有顯示(它應該有一個默認情況下存在的票的價格)。另外,當一張票被刪除時,我需要一個函數從總數中減去該票的價格。 最後,我寧願價格是美元,但當我這樣做時得到NaN,我想我需要某種類型的正則表達式?
新的鐵軌,更新的jquery,將不勝感激這一些幫助,謝謝!
刪除票功能
function remove_fields(link) {
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fields").hide();
}
附加票功能
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
不要通過onload調用函數,而應該使用jQuery ready函數。 '$(displayPrice());' – Clayton
謝謝@Clayton編輯了這個問題以包含相關函數。欣賞答案仍然不知道該怎麼辦tbh。在正則表達式中,我使用rails helper number_to_currency來呈現例如10.5,價格爲10.50美元,但這會導致jQuery函數中的NaN。 –
@Mil Ruane如果每個'.price'值之前都有一個$符號,則在嘗試解析該值之前,您需要將其除去。試試'$(this).html()。replace(/ [^ 0-9。]/g,'');'。另外如果你的值不是整數,你會想使用'parseFloat()'。 – Clayton