为什么 JavaScript toLowerCase 不起作用?
2011-07-20
10892
在此小提琴 http://jsfiddle.net/CBxbT/29/ 中,如果您单击黑色框,则会选择一种随机颜色,然后在其 ID 被剥离并更改为小写之后,将随机颜色的 ID 与您通过单击三个框之一“猜测”的任何颜色进行比较。
该小提琴可以工作,但相同的概念(即相同的代码但不同的元素名称)在我的实时网站上不起作用。在我的实时网站上,我收到了变量
guess
的警报,但之后我再也没有收到任何警报,而在小提琴中,它继续运行并在
ran
更改为小写后给我一个警报。
我这样做的方式是否有问题,可能会导致我的实时网站上出现问题。
ran = ran.toLowerCase();
来自 fiddle 的代码
$("#red, #blue, #green").click(function(e) {
guess = $(this).attr('id');
alert(guess);
ran = ran.toLowerCase(); //works here but not on my live site
alert(ran);
if(ran.charAt(1) === 'f'){
ran = ran.slice(3);
} else
ran = ran.slice(1);
alert(ran);
if (guess === ran) {
$('#results').fadeOut(1000);
} else {
$('#wrong').fadeOut(1000);
}
});
我的实时网站 我的实际网站
单击开始按钮。它将显示一个随机选择的音频播放器。
单击底行数字中的一个拼写出的数字。这是您的“猜测”
根据代码,它应该向您发出随机选择的音频播放器编号的警报,但事实并非如此。
来自实时网站的相关代码
$("#one, #two, #three, #four, #five, #six, #seven, #eight, #nine, #ten, #eleven, #twelve, #thirteen, #fourteen, #fifteen, #sixteen").click(function(e) {
guess = $(this).attr('id');
alert(guess);
ran = ran.toLowerCase();
alert(ran);
if(ran.charAt(1) === 'f'){
ran = ran.slice(3);
} else
ran = ran.slice(1);
alert(ran);
if (guess === ran) {
$('#right').fadeIn(1000);
} else {
$('#wrong').fadeIn(1000);
}
});
}
1个回答
如果您查看 JavaScript 错误控制台,您将看到以下内容:
ran is undefined
我建议您开始使用 Firebug 或类似程序,以便在开发时看到错误控制台。
在您的实时网站上,单击“开始”按钮的事件包含以下行:
var ran = getRandom(myArray, true);
var
关键字创建了一个名为
ran
的局部变量,因此您正在创建一个新变量而不是初始化全局变量。从该行中删除
var
即可。
JJJ
2011-07-20