我已成功使用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);
}
答案 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)
答案 4 :(得分:0)
问题是$("H1:contains('True')")
始终返回true
,因为它始终是一个对象。你真正想要检查的是它是否包含元素。
if ($("H1:contains('True')").length) {
现在它将返回else部分。
注意:我认为:contains
区分大小写。