2013-07-13 50 views
1

我想知道,有沒有什麼方法可以讓我得到所有的元素,即div s span s等包含數字數據?我想要做的是獲得所有這些,然後使用貨幣格式化程序jquery插件格式化它們。我現在使用的代碼是:使用jQuery從網頁獲取包含數值數據的所有元素?

var options = { 
    symbol: "", 
    decimal: ".", 
    thousand: ",", 
    precision: 2, 
    format: "%s%v" 
}; 

$(".namount").each(function() { 
    var formattedNum = accounting.formatMoney($(this).text(), options) 
    $(this).html(formattedNum); 
}); 

$(".totalsale").each(function(){ 
    var formattedNum = accounting.formatMoney($(this).text(), options) 
    $(this).html(formattedNum); 
}); 

$(".totalpurchase").each(function(){ 
    var formattedNum = accounting.formatMoney($(this).text(), options) 
    $(this).html(formattedNum); 
});  

有4〜5 each環的不同元素的更多類似的電話。問題是,這樣做效率不高。有沒有其他的方式可以實現這一點。

感謝

回答

0

既然你有一類選擇,這是最好的方式之一。唯一的變化我會做的是使用multiple selector和使用.text()方法中的元素

$(".namount, .totalsale, .totalpurchase").text(function (idx, text) { 
    return accounting.formatMoney(text, options) 
}); 

你能想到的另一個可能的變化是使用父容器元素

來縮小搜索上下文來更新值
+0

謝謝您的回答,但不是沒有辦法,我可以選擇**所有包含數值的元素**任何其他方式? –

+0

@KamranAhmed不,沒有,下一個解決方案是通過所有的元素,並檢查它們是否是數字,這是很昂貴 –

+0

嗯 我已經使用你的解決方案,但讓我等待一些其他答案,但我很肯定我會選擇你的答案作爲選擇的;) –

0

您可以按照建議使用類選擇器來完成此操作,也可以使用正則表達式來實現此目的。

請參閱本

jQuery selector regular expressions

+0

這樣的代價太高了,因爲沒有本地支持,如果使用類選擇器,那麼本地支持選擇將使用按類名稱的元素,這將比任何其他方法快得多 –

相關問題