2012-11-13 40 views
1

在我的代码我已经加入这个变量刚开了jQuery的:不()选择工作

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

只是改变'hasClass'到'is'。 – caarlos0

回答

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; 
2

或者,你可以尝试使用jQuery not()过滤器。

var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('highlight-problem').not('.right-word');