为什么JavaScript toLowerCase不起作用?

时间:2011-07-20 09:27:57

标签: javascript jquery

在这个小提琴http://jsfiddle.net/CBxbT/29/中,如果你单击黑框,会选择一个随机颜色,然后在它的id被剥离并更改为小写之后,将随机颜色的id与你猜的任何颜色进行比较“点击三个方框中的一个。

小提琴有效,但相同的概念(即相同的代码但不同的元素名称)在我的实际网站上不起作用。一个我的实时网站,我得到变量guess的警报,但后来我不再收到警报,而在小提琴中,它继续前进并在ran更改为ran = ran.toLowerCase(); 后给我一个警报小写。

我的方式是否存在问题可能会导致我的实际网站出现问题。

$("#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); 
                  }
 }); 
}

我的实际网站my actual site

单击开始按钮。它将显示随机选择的音频播放器。

点击最下面一行数字中的一个拼写数字。那是你的“猜测”

根据代码,它应该提供随机选择的音频播放器编号的警报,但事实并非如此。

来自实时网站的相关代码

{{1}}

1 个答案:

答案 0 :(得分:3)

如果您查看JavaScript错误控制台,您会看到:

ran is undefined

我建议您开始使用Firebug或类似的东西,以便在开发过程中看到错误控制台。

在您的实际网站上,单击“开始”按钮的事件包含以下行:

var ran = getRandom(myArray, true);

var关键字会创建一个名为ran的局部变量,因此您要创建一个新变量而不是初始化全局变量。从该行中删除var,它应该可以正常工作。