在这个 fiddle 中 http://jsfiddle.net/CBxbT/29/ ,如果您单击黑框,则会选择一种随机颜色,然后在其 id 被剥离并更改为小写后,随机颜色的 id 将与您通过单击三个框之一“猜测”的任何颜色进行比较。
fiddle 有效,但相同的概念(即相同的代码但不同的元素名称)在我的实时网站上不起作用。在我的实时网站上,我收到变量 guess
的警报,但后来我不再收到警报,而在 fiddle 中,它继续运行并在 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);
}
});
我的直播网站 my actual site
点击开始按钮。它将显示随机选择的音频播放器。
单击底行数字中的一个拼写数字。那是你的“猜测”
根据代码,它应该提醒您随机选择的音频播放器编号,但它没有。
现场相关代码
$("#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);
}
});
}
最佳答案
如果您查看 JavaScript 错误控制台,您会看到:
ran is undefined
我建议您开始使用 Firebug 或类似的工具,以便在开发时看到错误控制台。
在您的实时网站上,点击“开始”按钮的事件有这一行:
var ran = getRandom(myArray, true);
var
关键字创建一个名为 ran
的局部变量,因此您正在创建一个新变量而不是初始化全局变量。从该行中删除 var
,它应该可以工作。
关于javascript - 为什么 JavaScript toLowerCase 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759733/