1

重複の可能性:
id が存在しない場合に $('#id') が true を返すのはなぜですか?

私は非常に単純な js 関数を持っています:

function refresh(ltr) {
    if (board.find('p:contains("' + ltr + '")')) {
        board.find('p:contains("' + ltr + '")').show();
    } else {
        alert('Hello.');  
    }
}

明らかに、文字列をltrに渡します。文字列が含まれている場合は正常に機能しますが、含まれていない場合はアラートを発生させません...

なぜなのかご存知ですか?

4

2 に答える 2

17

.find常に評価されるjQueryオブジェクトを返すためtrue

ブール式を試してください:

if( board.find('p:contains("' + ltr + '")').length > 0 ) 
于 2013-01-28T15:32:58.863 に答える
5

board.find()常に jQuery コレクションを返します。これは true と評価されます。必要なもの:

board.find(...).length
于 2013-01-28T15:33:14.610 に答える