jQuery:这个随机选择器是可以预测的

时间:2011-07-19 23:32:44

标签: jquery

在这个小提琴http://jsfiddle.net/SySRb/40/中,我创建了一个包含两个元素的数组,#f-ONE和#ONE。有一个功能,当单击“开始”框时,随机选择两个元素中的一个,并根据选择的哪个,显示黄色或红色框。

然而,实际上,它总是被选中的黄色框,所以某些东西不起作用。

然而,选择事物的完全相同的代码在其他上下文中起作用(参见http://jsfiddle.net/urfXq/96/),所以我不知道问题是什么......

2 个答案:

答案 0 :(得分:3)

这样:

if ('ran === #f-one') {

应该是:

if (ran === 'f-one') {

你拥有它的方式,它总是会评估为true,因为非空字符串总是“真实的”。

编辑:没有看到toLowerCase()

答案 1 :(得分:0)

你的代码有点费解,在这里它被清理了:

var myArray = [];

myArray[0] = "ONE"; 
myArray[1] = "f-ONE"; 

//function getRandom to choose a random element from array 
function getRandom(array) { 
  var key = Math.floor(Math.random() * array.length); 
  return array[key];
}

$(".start").click(function() { 
  var id = '#' + getRandom(myArray;  
  $(id).show();
});

这里是jsfiddle:http://jsfiddle.net/SySRb/67/

哦,实际问题出现在'asdf ==== asdf'中,这是一个字符串,非空字符串将始终为真。