在我的代码中,我添加了此变量
var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('.highlight-problem:not(.right-word)');
由于某种原因,它不适用于此代码
$('.next-question').click(function () {
$('td').removeClass('highlight-problem');
var r = rndWord;
while (r == rndWord) {
rndWord = Math.floor(Math.random() * (listOfWords.length));
}
$('td[data-word="' + listOfWords[rndWord].name + '"]').addClass('highlight-problem');
$('td[data-word=' + word + ']').removeClass('wrong-letter').removeClass('wrong-word').removeClass('right-letter');
var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('.highlight-problem:not(.right-word)');
if (spellSpace) {
addMedia();
}
});
它不会返回addMedia()函数,我不知道为什么
有谁能告诉我哪里出错了?
答案 0 :(得分:3)
hasClass
获取类名作为参数,而不是选择器。您可以改为使用is()
:
var spellSpace = $('td[data-word="' + listOfWords[rndWord].name + '"]')
.is('.highlight-problem:not(.right-word)');
或者可能是以下内容:
var spellSpace = $('td[data-word="' + listOfWords[rndWord].name
+ '"].highlight-problem:not(.right-word)').length > 0;
答案 1 :(得分:3)
jQuery hasClass
函数无法接受css选择器:http://api.jquery.com/hasClass/
答案 2 :(得分:2)
或者,您可以尝试使用jQuery not()过滤器。
var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('highlight-problem').not('.right-word');