jQuery if H1:包含一个词做某事

发布于 2024-11-16 08:01:24 字数 575 浏览 1 评论 0原文

我已成功使用 contains() 函数,但从未将其与 if 语句 一起使用。我的下面的代码似乎在它应该工作的时候不起作用。我基本上是说,如果 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);                     
}

I've used the contains()function successfully, but never have used it with an if-statement. My below code doesn't seem to work when it should. I am basically saying if H1 contains the word "true", do something, if not do something else. Currently it only shows the first bit of code no matter what is in the H1.. it never shows the else part.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

风吹雨成花 2024-11-23 08:01:24

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

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

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

You need to check the length property of the resulting collection:

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

Since $("H1:contains('True')") will return an object and objects always evaluate to truthy.

幻想少年梦 2024-11-23 08:01:24

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

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

$("H1:contains('True')") is a selector. It returns a jQuery object, not a boolean. To check that the selector found any objects, check the length property:

if ($("H1:contains('True')").length) {
    // stuff...
}
甜`诱少女 2024-11-23 08:01:24

试试这个

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

try this

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);                     
}
誰認得朕 2024-11-23 08:01:24

通过包含,它返回一个列表。

请参阅此解决方案:

if contains certain text, then run jquery< /a>

With the contains, it gives back a list.

Refer to this for a solution:

if contains certain text, then run jquery

分分钟 2024-11-23 08:01:24

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

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

现在它将返回 else 部分。

注意:我相信 :contains 区分大小写。

The problem is that $("H1:contains('True')") always returns true because it is always an object. What you really want to check is if it contains elements.

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

Now it will return the else part.

Note: I believe that :contains is case-sensitive.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文