这是我的HTML
<div class="item">Item #SKU987</div>
我试图创建一个简单的jQuery,但它一直在返回undefined
if (jQuery('div.item:contains("Item #SKU987")').length) {
alert("Hello! This works!");
}
我在控制台中试了这个,然后继续undefined
我错过了什么?
答案 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尚未加载。
<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;