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/

使用is: http://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 に答える