简单的JS函数使用文本输入和parseInt,返回NaN

时间:2013-09-27 23:58:46

标签: javascript

任何人都可以帮我弄清楚为什么我会继续获得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.如果我用数字替换输入,情况也是如此。

谢谢

2 个答案:

答案 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