我在javascript中为学校项目做一个简单的网络应用程序。这似乎很容易,但是当我调用一个函数时,并不是所有代码行都被执行。它似乎在for
cicle之后停止了。事实上,点击按钮后没有任何反应。
function calcola(){
var texts = document.getElementsByTagName('input');
var selects = document.getElementsByTagName('select');
var ang;
var v;
var h;
for (var i=0;i<texts.length+selects.length;i++) {
if (selects[i].id == 'a') {
ang = selects[i].value;
}
if (selects[i].id == 'v') {
v = selects[i].value;
}
if (texts[i].id == 'h') {
h = texts[i].value;
}
}
var vy0 = v*Math.sin(ang*(Math.PI/180));
var t1 = vy0/9.81;
var h1 = (vy0*t1)/2;
var ht = h + h1;
var t2 = Math.pow((2*ht)/9.81,0.5);
var tt = t1 + t2;
var vx0 = v*Math.cos(ang*(Math.PI/180));
var x = vx0*tt;
document.body.innerHTML = "<center style='font-size: 4.5em; font-family: monospace'>Distanza percorsa: " + Math.round(x*100)/100 + " m</center><br><center style='font-size: 4.5em; font-family: monospace'>Velocita' Iniziale: " + v + " m/s</center><br><center style='font-size: 4.5em; font-family: monospace'>Angolazione: " + a + "°</center><br><center style='font-size: 4.5em; font-family: monospace'>Newton Di Spinta: " + "..." + " N</center>";
}
答案 0 :(得分:1)
你循环遍历“文本”和“选择”(texts.length + choices.length)的总数 - 当你使用我索引时,这几乎肯定会导致数组越界错误
你可能想要最低限度:
for (var i=0;i<Math.min(texts.length,selects.length);i++) {...
或两个单独的循环迭代每个元素和元素。