jQuery如果H1:包含一个单词做某事

时间:2011-06-17 15:02:16

标签: jquery html if-statement

我已成功使用contains()功能,但从未将其用于if-statement。我的下面的代码似乎不适用。我基本上说如果H1包含“true”这个词,那就做点什么,如果不做别的话。目前它只显示第一位代码,无论H1中的代码是什么......它从不显示else部分。

<H1>This h1 contains the word Star</H1>

if ($("H1:contains('True')")) {
    var test= "<div>IT DID CONTAIN THE WORD TRUE!</div>";
    $('h1').append(test);

} else {
    var test= "<div>IT DID <b>NOT</b> CONTAIN THE WORD TRUE!</div>";
    $('h1').append(test);                     
}

5 个答案:

答案 0 :(得分:9)

您需要检查生成的集合的length属性:

if ($("H1:contains('True')").length) {
    ...

由于$("H1:contains('True')")将返回一个对象,而总是评估为真实。

答案 1 :(得分:1)

$("H1:contains('True')")是一个选择器。它返回jQuery object,而不是布尔值。要检查选择器是否找到了任何对象check the length property

if ($("H1:contains('True')").length) {
    // stuff...
}

答案 2 :(得分:0)

试试这个

if ($("H1:contains('True')").length > 0) {
   var test= "<div>IT DID CONTAIN THE WORD TRUE!</div>";
   $('h1').append(test);                     
} else {
   var test= "<div>IT DID <b>NOT</b> CONTAIN THE WORD TRUE!</div>";
   $('h1').append(test);                     
}

答案 3 :(得分:0)

使用contains,它会返回一个列表。

请参阅此解决方案:

if contains certain text, then run jquery

答案 4 :(得分:0)

问题是$("H1:contains('True')")始终返回true,因为它始终是一个对象。你真正想要检查的是它是否包含元素。

if ($("H1:contains('True')").length) {

现在它将返回else部分。

注意:我认为:contains区分大小写。