1

在我的代码中,我添加了这个变量

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() 函数,我不知道为什么

谁能告诉我哪里出错了?

4

3 回答 3

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;
于 2012-11-13T12:42:27.900 回答
3

jQueryhasClass函数不能接受 css 选择器:http ://api.jquery.com/hasClass/

使用ishttp ://api.jquery.com/is/

于 2012-11-13T12:45:02.567 回答
2

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

var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('highlight-problem').not('.right-word');
于 2012-11-13T12:43:52.730 回答