-4

如果有人可以查看http://jsfiddle.net/fdzVq/ 并借给我一双眼睛,那就太棒了。div 应该更改为提供的消息之一,但它不执行任何操作。

JS:

function getPowerMsg(kj){
var kwh = kj * 0.00027777777777778;
var stuff = [["an LED night light", 0.5],["a clock radio", 4],["a night light", 5]];        
for(var i=0; i<stuff.length; i++){
var item = stuff[i][0];
var watts = stuff[i][1];
var kwatts = watts/1000;
            var hours = (Math.floor((kwh/kwatts)*2)/2);
            if(hours > 0){
                results.push([item, convertTime(hours)]);
            }
        }
        return results[randbetween(0,results.length-1)];
}

function convertTime(hrs){
        var msg = "";
        if(hrs < 24){
            msg = hrs+" hour";
            if(hrs != 1){ msg += "s"; }
            if(hrs < 1){ msg = "a half hour"; }
        }else if(hrs == 24){
            msg = "a full day";
        }else if(hrs < 33){
            msg = "over a day";
        }else if(hrs < 39){
            msg = "about a day and a half";
        }else if(hrs < 48){
            msg = "almost 2 days";
        }else if(hrs == 48){
            msg = "2 days";
        }else if(hrs < 60 ){
            msg = "over 2 days";
        }else if(hrs < 72){
            msg = "almost 3 days";
        }else if(hrs == 72){
            msg = "3 days";
        }else{
            msg = "over 3 days";
        }
        return msg;
}

function changePowerMsg(num){
    var x = document.getElementById("powermsg");
    var y = getPowerMsg(num);
    x.innerHTML = y;
}

HTML:

<div id="powermsg">Hi</div>
<a href="javascript:;" onclick="javascript: changePowerMsg(200);">Change!</a>
4

1 回答 1

1

几件事。

  • jsFiddle:更改为 nowrap in
  • 结果是未定义的,因为它没有被声明
  • randbetween 是未定义的,因为它没有被声明
  • 您不必javascript:在 onclick 或 href 中指定。
  • 这是一个稍微清理过的版本JS

一般来说,您应该记住内置在浏览器中的 javascript 调试器,因为这是它们的用途,而且大多数现代浏览器都会为您提供这种调试器。以下不是一个详尽的列表,但有了这个你应该得到一个大致的想法。

  • 在 IE 中访问调试器
  • FF 中的访问调试器
  • 在 Chrome 中访问调试器
  • 于 2013-07-19T16:36:42.600 回答