jQuery,如果类名包含

时间:2016-11-18 04:35:09

标签: jquery jconsole

这是我的HTML

<div class="item">Item #SKU987</div>

我试图创建一个简单的jQuery,但它一直在返回undefined

    if (jQuery('div.item:contains("Item #SKU987")').length) {
alert("Hello! This works!");
}

我在控制台中试了这个,然后继续undefined

我错过了什么?

5 个答案:

答案 0 :(得分:2)

参见@ HenryDev的第二个解决方案。 如果在控制台中运行它,则会得到undefined,因为if语句本身没有值。只需在控制台中忽略此结果即可。 使用indexOf时,您必须了解这些字母的大小写。你确定你要找的文字是在确切的情况下而不是小写或大写吗? 使用view-source:确保您正在搜索正确的内容。

答案 1 :(得分:1)

试试这个:

if( jQuery('.item').eq(0).html() == "Item #SKU987" ) {
     alert('it finally worked!');
}

或者如果你有多个.items,请使用:

jQuery.each('.item', function(i,v) {
    if( jQuery(this).html() == "Item #SKU987"; )
        alert('index: '+i+' contains "Item #SKU987"');
});

<强> jsfiddle

答案 2 :(得分:1)

您是否尝试过使用$(document).ready(function(){....})。这是一个解决方案。希望它有所帮助!

$(document).ready(function(){
     if (jQuery('div.item:contains("Item #SKU987")').length) {
     alert("Hello! This works!");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="item">Item #SKU987</div>

这是另一种解决方案:

if($(".item").text().indexOf("Item #SKU987") !== -1){
  alert("Hello! This works!");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="item">Item #SKU987</div>

答案 3 :(得分:0)

试试这个

if ($(".item").text() == "Item #SKU987") {
alert("Hello! This works!");
}

答案 4 :(得分:0)

将代码放在$(document).ready();内。然后它会工作。我附上了示例代码。您的问题是,当您调用选择器时,您的dom尚未加载。

&#13;
&#13;
<html>
	<head>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
		<script>
		$(document).ready(function(){
			if (jQuery('div.item:contains("Item #SKU987")').length) {
				alert("Hello! This works!");
			}
		});
		</script>
	</head>
	<body>
		<div class="item">Item #SKU987</div>
	</body>

</html>
&#13;
&#13;
&#13;