对于这个可怕的头衔感到抱歉,我写这些东西很糟糕。
我想要做的事情很简单。
我有一组隐藏的字母组成一个单词。
下面是随机混乱的字母选择。
当人们点击其中一个随机混乱的字母时,我会通过隐藏的字母过滤并显示相应的字母。
我需要做的是,如果有人点击一封信,过滤隐藏的字母并返回“true”并显示该字母或返回“false / null”并发出警告();
这就是我目前的过滤方式。我很困惑在哪里放置一个if语句,或者甚至是我应该采取的方法。
这是一个小提琴(隐藏的词是“封印”) - http://jsfiddle.net/GA7WB/
var $buttons = $('#letters span'),
$hidden = $('.letter');
$buttons.click(function(){
_selected = $(this).html();
$hidden.filter(function() {
return $(this).text() == _selected;
}).show();
});
答案 0 :(得分:2)
您只需要检查过滤器返回的结果的长度:
// get matched elements
var matches = $hidden.filter(function() {
return $(this).text() == _selected;
});
// show them, or alert if none
if (matches.length > 0) matches.show();
else alert("There are no " + _selected + "'s");
答案 1 :(得分:1)
如果找到一个标记,请尝试设置标记:
var $buttons = $('#letters span'),
var $hidden = $('.letter');
$buttons.click(function(){
_selected = $(this).html();
var foundOne = false;
$hidden.filter(function() {
var retval = $(this).text() == _selected;
if (retval) foundOne = true;
return retval;
}).show();
if (!foundOne) {
alert("Nope");
}
});
FIDDLE http://jsfiddle.net/GA7WB/4/