【发布时间】:2011-12-11 20:50:32
【问题描述】:
我正在使用 jquery 和一个从 Yahoo! 获取最新汇率的 php 脚本转换价格!
我的更新函数正在处理我可以使用 .text() 更新的元素(例如 span 元素),但是一旦我尝试设置输入元素的 .val(),它就会简单地收到“NaN” - 甚至虽然我对两者使用相同的值。
function frmtCurrency(ele,price) {
// round the currency to the nearest .05
price *= 2.0;
price = price.toFixed(1) / 2.0;
price = price.toFixed(2);
//alert (parseInt(price)) here returns the amount, so it IS a number
// check what type of element 'ele' is
var element = (ele.get(0).tagName);
if (element != 'INPUT') {
ele.text(price+code); ALWAYS OK eg 10.55
} else {
ele.val(price); // ALWAYS NaN
}
};
谁能告诉我为什么我不能更新输入字段,但我可以更新 span 元素
【问题讨论】:
-
建议你做 parseInt(price, 10);作为函数的第一行,在您尝试对其进行数学运算之前
-
我同意邓肯的观点。价格在某些时候可能是一个字符串 (NaN)。 toFixed() 可以使它成为一个字符串.. 可以在设置 val 之前说
price = parseInt(price)。 -
请创建一个jsfiddle.net 演示。
-
他正在尝试使用浮点数,所以他应该使用
parseFloat(price).toFixed(2)
标签: javascript jquery nan