Javascript 变量显示 NaN

Javascript variable displaying NaN

有人可以告诉我如何让我的最终变量显示为数字(我的函数变量的值)而不是 NaN 吗?

<form id="computeroi">
                <fieldset>
                    <div class="col-1 pblue"> <p class="float-left"> 1. How many monthly visitors does your website get per month? </p>  <input type="number" value="0" id="monthlyvisitors" class="width-50" onchange="computeroi()"> </div>
                    <div class="col-1 pblue"> <p class="float-left"> 2. How many of those visitors are from a mobile device? </p>  <input type="number" value="0" id="mobilevisitors" class="width-50" onchange="computeroi()"> </div>
                    <div class="col-1 pblue"> <p class="float-left"> 3. What is your average deal worth ? </p>  <input type="number" value="0" id="dealworth" class="width-50" onchange="computeroi()"> </div>
                    <div class="col-1 pblue"> <input type="submit" value="Submit" class="width-25" id="submit" width="25"> </div>
                    <div class="col-1 "> <h1 id="newdealw"> </h1> </div>
                </fieldset>
            </form>

function computeroi() {
var monthlyv = document.getElementById('monthlyvisitors').value;
var mobilet = document.getElementById('mobilevisitors').value;
var dealw = document.getElementById('dealworth').value;

var newdeals = (mobilevisitors / monthlyvisitors); 
var newdealw = (newdeals * dealworth);

document.getElementById('newdealw').innerHTML = newdealw;

}

mobilevisitorsmonthlyvisitorsdealworth 未在您的方法中的任何位置声明或定义。

而是将 ids monthlyvisitors,mobilevisitors,dealworth 的值赋给 monthlyv ,mobilet ,dealw

var monthlyv = document.getElementById('monthlyvisitors').value;
var mobilet = document.getElementById('mobilevisitors').value;
var dealw = document.getElementById('dealworth').value;

像这样尝试

var monthlyv = document.getElementById('monthlyvisitors').value;
var mobilet = document.getElementById('mobilevisitors').value;
var dealw = document.getElementById('dealworth').value;

var newdeals = ( +mobilet / +monthlyv ); 
var newdealw = (newdeals * +dealw );

N:b: + 变量前的符号将其视为数字。

var monthlyv = document.getElementById('monthlyvisitors').value;
var mobilet = document.getElementById('mobilevisitors').value;
var dealw = document.getElementById('dealworth').value;

var newdeals = (mobilevisitors / monthlyvisitors); 
var newdealw = (newdeals * dealworth);

您的代码中没有 mobilevisitors ,monthlyvisitors 个变量。

为了安全起见,在进行数学运算之前也相应地使用parseInt()parseFloat()

您的代码中没有 mobilevisitors 、monthlyvisitors 变量。 只需像这样更改最后两行:

var newdeals = (mobilet / monthlyv); 
var newdealw = (newdeals * dealw);

您尚未声明变量 mobilevisitors 或这个 monthlyvisitors 因此您无法获取值。您应该使用变量 monthlyv 和 mobilet 来获取这两个东西的值(mobilevisitors 和 monthlyvisitors)