【问题标题】:jQuery if H1:contains a word do somethingjQuery if H1:contains a word do something
【发布时间】:2011-09-17 06:46:03
【问题描述】:

我已经成功使用了contains()函数,但从未将它与if-statement 一起使用。我下面的代码似乎在它应该工作的时候不起作用。我基本上是说如果H1 包含“真”这个词,就做某事,如果不做其他事情。目前它只显示代码的第一位,无论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);                     
}

【问题讨论】:

标签: jquery html if-statement


【解决方案1】:

您需要检查结果集合的length 属性:

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

因为$("H1:contains('True')") 将返回一个对象并且对象总是评估为真。

【讨论】:

  • lol duh,非常感谢,我一直在看代码到 long =p
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    试试这个

    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);                     
    }
    

    【讨论】:

    • 测试将是&gt; 0&gt;= 1
    【解决方案4】:

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

    参考这个解决方案:

    if contains certain text, then run jquery

    【讨论】:

      【解决方案5】:

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

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

      现在它将返回 else 部分。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-01
        • 2015-02-06
        • 2011-11-21
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 2021-09-29
        • 1970-01-01
        相关资源
        最近更新 更多