JQuery的包含返回一个对象?
问题描述:
我想看看一个特定的字符串是否出现在div中。我已经尝试过,但是它不会返回真实或错误,这是我认为包含的内容吗?JQuery的包含返回一个对象?
if($("#path"+i+"_status:contains('!=')")){
alert($("#path"+i+"_status:contains('!=')"));
//alerts - [object object]
return true;
}
这里是我的HTML:
<div class="status" id="path3_status">
<img height="21" align="absmiddle" src="images/valid.jpg">Text File (3000) = Source Table (3000)<img height="21" align="top" src="images/info.jpg" " id="img_path3">
<a onclick="clear_file('TI004OBAE', 'path3');" href="#">Clear</a>
</div>
我在做什么错。我如何知道div是否包含字符串“!=”?
感谢所有的帮助
答
是的,contains
是一个jQuery选择器。选择器返回jQuery对象实例,它维护对匹配的DOM元素的引用数组。
检查jQuery's length
property看到一个选择是否匹配至少一个元素:
if ($("#path"+i+"_status:contains('!=')").length > 0) {
alert("found a match");
}
答
你在这里做什么$("#path"+i+"_status:contains('!=')")
是选择与ID的元素,包含'!='
。
你可以做类似
if($("#path"+i+"_status:contains('!=')").length > 0)
或
if($("#path"+i+"_status").text().indexOf("!=") != -1)
这不是测试,但应该给你的基本理念。
*编辑 - 请参阅Jeff's answer以了解第一个示例的工作原理。
答
它可能是更容易使用,而不是ID类:
$('.status:contains("!=")').each(function(){
alert($(this).text());
})
+0
尽管使用该类更容易,但如果有可用的话,则应始终使用一个ID - 以提高速度和效率。 (这在当代浏览器中绝对重要!) – 2010-04-28 17:29:38
感谢您的解释杰夫。一个简单的问题,'contains'只能查看元素中的文本,而不能查看元素中的html? – Abs 2010-04-29 08:55:09
我的荣幸!是 - 'contains'只查看元素内的文本,而不是标记。 – 2010-04-29 11:41:24
太棒了,谢谢杰夫。 – Abs 2010-04-29 19:26:17