TypeScript汇率转换脚本显示[object HTMLSpanElement]问题求助
问题原因及修复方案
核心问题
你遇到的[object HTMLSpanElement]是因为直接拿DOM元素对象做数值计算了,元素本身会被强制转换成这个字符串,导致计算结果带上前缀。另外代码里还有两处无效操作:
parseInt(EUR)和parseInt(findUSD)没把转换结果赋值给变量,等于白写- 用
parseInt处理小数汇率会丢失精度,应该用parseFloat或Number()
修复后的代码
const USDtoEUR = () => { const findUSD = document.querySelectorAll(".usd")[0]; if (!findUSD) return; // 获取span里的文本数值,转成浮点数 const usdValue = parseFloat(findUSD.textContent.trim()); if (isNaN(usdValue)) return; // 处理非数值的情况 const eurRate = 0.94; // 直接用数值,不用字符串 const eurValue = (usdValue * eurRate).toFixed(2); // 保留两位小数更合理 findUSD.textContent = eurValue; }; setInterval(USDtoEUR, 300);
关键改动说明
- 先从
findUSD的textContent里提取文本,转成浮点数再计算 - 去掉无用的字符串转数值操作,直接用数值类型的汇率
- 增加
isNaN判断,避免非数值内容导致计算出错 - 用
toFixed(2)保留两位小数,符合货币显示习惯
内容的提问来源于stack exchange,提问作者Leon
相关产品推荐
相关产品推荐

