我有两个以上与货币有关的字段,我需要对其进行格式化。我已经编写了format函数,但是到目前为止我只能传递一个字段/ ID,即收入传递给JS函数。如何将多个ID传递给该通用函数,以便可以使用该通用函数格式化字段。
我想将通过document.getElementById获得的收入和交易价值传递给formatCurrency函数?如何将多个ID传递给一个函数并将其设置为ID?我尝试设置以下方式
$("#Income").val(formatCurrency($("#Income").val()));
但是没用
function formatCurrency(amt){
amt = amt.replace("$", "");
if(amt && amt.split(".").length <= 2)
{
var formatter = new Intl.NumberFormat('en-US',
{
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
amt = formatter.format(amt);
}
document.getElementById("Income").innerHTML=amt;
//document.getElementById("Trade").innerHTML=amt;
}
formatCurrency(document.getElementById("Income").innerHTML);
//formatCurrency(document.getElementById("Trade").innerHTML);
如果收入= 8000输出应为$ 8000.00 并且如果Trade = 900的输出应该是$ 900.00 我只能为收入而不是贸易实现目标,因为我无法将贸易传递给formatCurrency。
答案 0 :(得分:1)
因此,只需阅读文本并将其输出到函数中即可。传递选择器。
function formatCurrency(selector) {
var elem = document.querySelector(selector)
var amt = elem.textContent.replace("$", "");
if (amt && amt.split(".").length <= 2) {
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
amt = formatter.format(amt);
}
elem.textContent = amt;
}
formatCurrency("#one")
formatCurrency("#two")
<div id="one">$.99</div>
<div id="two">$1200.00</div>
如果要使其匹配,则选择器可以匹配多个对象,那就是带有循环的querySelectorAll
function formatCurrency(selector) {
document.querySelectorAll(selector).forEach(function (elem) {
var amt = elem.textContent.replace("$", "");
if (amt && amt.split(".").length <= 2) {
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
amt = formatter.format(amt);
}
elem.textContent = amt;
})
}
formatCurrency(".money")
<div class="money">$.99</div>
<div class="money">$1200.00</div>
答案 1 :(得分:0)
这是一个虚拟函数,可以帮助您将任意数量的参数发送给函数
function multipleArgs(){
for (var i=0; i < arguments.length; i++)
console.log(arguments[i])
};
// Call above function
multipleArgs(1,2)
但是对于您的问题,您可以将对象传递给
之类的函数。{type:"trade",value:$("#Trade").val()}
{type:"Income",value:$("#Income").val()}
并修改您的常用功能
function formatCurrency(amt){
switch(amt.type){
"Income":
// do Income related work
break;
"Trade":
//do Trade related work
break;
default: break;
}
}