为什么我的'别人'不起作用?

时间:2013-01-28 15:31:26

标签: javascript jquery

  

可能重复:
  Why does $(‘#id’) return true if id doesn’t exist?

我有一个非常简单的js函数:

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

显然我将一个字符串传递给ltr,如果它包含字符串,它可以正常工作但如果没有则不会触发警报......

你知道为什么吗?

2 个答案:

答案 0 :(得分:17)

因为.find返回一个总是求值为true

的jQuery对象

尝试布尔表达式:

if( board.find('p:contains("' + ltr + '")').length > 0 ) 

答案 1 :(得分:5)

board.find()将始终返回一个jQuery集合,该集合将评估为真实。你需要:

board.find(...).length