這是一個簡單的問題,我已經編寫了一個簡單的計算函數,它完美地工作,儘管我遇到了一個問題,因爲它僅適用於.change()方法,並且不會在加載文檔時使用。我編寫的這個函數依賴於包含在頁腳中的數字庫。爲什麼此功能在頁面加載時不運行?
$(document).ready(function() {
function compute() {
var row = $(this).closest('tr');
var price = parseFloat($('.price', row).val().replace(',', '.'));
var quantity = parseFloat($('.quantity', row).val(), 10);
var total = price * quantity;
totalCleaned = numeral(total.toFixed(2)).format('0,0.00');
$('.total', row).html(totalCleaned);
var grandTotal = 0;
var totalsum = 0;
$('.total').each(function() {
totalsum += numeral().unformat($(this).text());
grandTotal = numeral(totalsum.toFixed(2)).format('0,0.00');
$('.net-total').html(grandTotal);
});
console.log(grandTotal);
}
compute(); // this is where I am trying to start the function on load
$('.price, .quantity').change(compute);
});
什麼是'$(this)'應該是?當你第一次調用compute()時,'$(this)'將等於整個DOM - 不知道它最接近'tr'元素是什麼,但它可能不是你想要的目標。 –
井把戒備(排); var row = $(this).closest('tr');並看看你得到了什麼 – dansasu11
「包含在頁腳中」。在你有'document.ready()'之前,你不應該加載這個庫嗎? –