1

谁能帮我弄清楚为什么我一直得到 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. 如果我将输入替换为数字,情况也是如此。

谢谢你

4

2 回答 2

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 引擎解释为浮点数;)

于 2013-09-28T00:02:51.017 回答
0

您正在尝试使用此代码从输入元素中获取值, document.getElementById('total').innerHTML

这不是从输入中获取值的方法。你应该使用这个代码,

document.getElementById('total').value

于 2013-09-28T00:16:32.913 回答