getElementByID不会将值传递给变量

时间:2013-11-09 09:02:22

标签: javascript html html5

的Javascript

function fn1(){
    var a = document.getElementById("xa").value;
    var b = document.getElementById("ya").value;
    var c = document.getElementById("xb").value;
    var d = document.getElementById("yb").value;

    fn2(a,b,c,d);
}

HTML

<div align="center"><b>Digital Differential Analyzer</b><br /><br />
    X0: <input type="text" id="xa"/>
    Y0: <input type="text" id="ya"/>
    XE: <input type="text" id="xb"/>
    YE: <input type="text" id="yb"/>
    <input id="button1" type="button" value="Submit" onclick="e.width = e.width;fn1();" /></div>

如果我输入function1只是调用带有就绪值的function2(例如0,0,300,300),它运行正常,但是当我尝试使用getElementById获取变量时,没有任何作用,我试图修改它很多但是仍然是相同的结果,它甚至没有显示为错误

1 个答案:

答案 0 :(得分:2)

尝试:

 fn2(+a,+b,+c,+d);

这会将输入值从string转换为int。您的函数不起作用,因为您将字符串值传递给funcrion。 它分别将0添加到变量a,b,c,d并将字符串转换为int 即0 + a = a但现在'a'是int。 要获得更高的准确性,请尝试使用parseFloat()

function fn1(){
 var a =parseFloat( document.getElementById("xa").value);
 var b =parseFloat( document.getElementById("ya").value);
 var c =parseFloat( document.getElementById("xb").value);
 var d =parseFloat( document.getElementById("yb").value);

  fn2(a,b,c,d); 

}