任何人都可以帮我弄清楚为什么我会继续获得NaN的结果吗?
function showShares() {
var tot = document.getElementById('total').innerHTML;
var pri = document.getElementById('price').innerHTML;
var per = document.getElementById('percent').innerHTML;
var shar = parseInt(tot, 10) * parseFloat(per) / parseFloat(pri);
document.getElementById("shares").innerHTML=Math.round(shar);
}
<td><text id="price"><%= StockQuote::Stock.quote(current_user.fund1).last %></text></td>
<td><text id="shares"></text></td>
<td><text id="percent">.50</text></td>
<p class="alignright1"><input type="text" id="total" size="8"></input>
<br><a href onclick="showShares()">here</a>
股票报价在单元格中返回一个整数即。 25.38。如果我删除嵌入的ruby并放置一个简单的整数,它返回相同的NaN。 50.如果我用数字替换输入,情况也是如此。
谢谢
答案 0 :(得分:1)
试试这个:
function showShares() {
var tot = document.getElementById('total').innerHTML;
var pri = document.getElementById('price').innerHTML;
var per = document.getElementById('percent').innerHTML;
var shar = parseInt(tot, 10) * parseFloat(per, 10) / parseInt(pri, 10);
document.getElementById("shares").innerHTML=Math.round(shar);
}
百分比值是一个浮点数(带逗号的数字),必须由JS引擎解释为浮点数;)
答案 1 :(得分:0)
您正尝试使用此代码从输入元素获取值,
document.getElementById('total').innerHTML
这不是从输入中获取值的方法。你应该使用这段代码,
document.getElementById('total').value