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"); 
} 
+0

感谢您的解释杰夫。一个简单的问题,'contains'只能查看元素中的文本,而不能查看元素中的html? – Abs 2010-04-29 08:55:09

+0

我的荣幸!是 - 'contains'只查看元素内的文本,而不是标记。 – 2010-04-29 11:41:24

+0

太棒了,谢谢杰夫。 – Abs 2010-04-29 19:26:17

你在这里做什么$("#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