在这个小提琴http://jsfiddle.net/SySRb/40/中,我创建了一个包含两个元素的数组,#f-ONE和#ONE。有一个功能,当单击“开始”框时,随机选择两个元素中的一个,并根据选择的哪个,显示黄色或红色框。
然而,实际上,它总是被选中的黄色框,所以某些东西不起作用。
然而,选择事物的完全相同的代码在其他上下文中起作用(参见http://jsfiddle.net/urfXq/96/),所以我不知道问题是什么......
答案 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'中,这是一个字符串,非空字符串将始终为真。