为什么我的代码在jsFiddle上工作但不在本地工作

时间:2014-02-18 13:54:03

标签: html local jsfiddle

正如标题所说,为什么这个代码不能在我的本地html文件上运行,尽管它适用于jsFiddle。这是我的代码:

JS

    var s,t,d; 
s = document.getElementById('start');
t = document.getElementById('temp');
d = document.getElementById('display');

startChange = function(){
  var v,nt,diff,timelapse,decrease,decreaseit,loop;
  v = +d.value;
  nt = +t.value; 
  diff = v-nt;
  timelapse = 500; //set to whatever you like
  decrease = .2;
  decreaseit = function(){
    var v = d.value;      
    if(v>=(nt+decrease)){
     loop = setTimeout(function(){    
      d.value = (v-decrease).toFixed(1);
      decreaseit();
     },timelapse)   
    } else clearInterval(loop);
  }
  decreaseit();

}

s.onclick = startChange;

HTML

  <input id="display" type="text" value="7.2" disabled>

<input id="temp" type="text">
    <button type="button" id="start">Set temp</button>    

1 个答案:

答案 0 :(得分:2)

您可能已将代码放在文件的<head></head>部分,而您的JavaScript代码无法访问DOM元素,因为尚未创建DOM。

如果您的代码在头部,请用:

包装
window.onload = function() {
 // your code
}

否则将其放在关闭身体标签之前。这是包含JavaScript的推荐方式,因为首先加载基本内容。