jQuery 如果 class 名称包含
jQuery if class name contains
这是我的 HTML
<div class="item">Item #SKU987</div>
我正在尝试创建一个简单的 jQuery,但它一直在返回 undefined
if (jQuery('div.item:contains("Item #SKU987")').length) {
alert("Hello! This works!");
}
我正在控制台中尝试这个,我不断得到 undefined
我错过了什么?
试试这个:
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"');
});
您是否尝试过使用 $(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>
试试这个
if ($(".item").text() == "Item #SKU987") {
alert("Hello! This works!");
}
把代码放在$(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>
参见@HenryDev 的第二个解决方案。
如果你在控制台中 运行 它,你将得到 undefined
作为结果,因为这个 if 语句本身没有价值。只需在控制台中忽略此结果即可。
使用 indexOf
时,您必须注意字母的大小写。您确定要查找的文本大小写准确,而不是小写或大写吗?
使用 view-source:
以确保您正在搜索正确的内容。
这是我的 HTML
<div class="item">Item #SKU987</div>
我正在尝试创建一个简单的 jQuery,但它一直在返回 undefined
if (jQuery('div.item:contains("Item #SKU987")').length) {
alert("Hello! This works!");
}
我正在控制台中尝试这个,我不断得到 undefined
我错过了什么?
试试这个:
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"');
});
您是否尝试过使用 $(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>
试试这个
if ($(".item").text() == "Item #SKU987") {
alert("Hello! This works!");
}
把代码放在$(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>
参见@HenryDev 的第二个解决方案。
如果你在控制台中 运行 它,你将得到 undefined
作为结果,因为这个 if 语句本身没有价值。只需在控制台中忽略此结果即可。
使用 indexOf
时,您必须注意字母的大小写。您确定要查找的文本大小写准确,而不是小写或大写吗?
使用 view-source:
以确保您正在搜索正确的内容。