Jquery 应该如何使用:contains()?

Jquery 应该如何使用:contains()?,jquery,jquery-selectors,Jquery,Jquery Selectors,我不熟悉jQuery,但只是尝试创建一个可以用来筛选表的函数。我已经设置好了表,这样我就可以按类选择所有行(这很好),并对结果调用each()。在对each()的回调中,我得到了以下if语句: if ($(this).find("td[name=firstName]:contains('ke')").size() > 0) 然而,当我知道它在那里时,却找不到匹配的。如果我去掉contains()调用,它确实会找到表单元格,但是我真的不确定出了什么问题。不幸的是(对我来说),这可能像使用错

我不熟悉jQuery,但只是尝试创建一个可以用来筛选表的函数。我已经设置好了表,这样我就可以按类选择所有行(这很好),并对结果调用each()。在对each()的回调中,我得到了以下if语句:

if ($(this).find("td[name=firstName]:contains('ke')").size() > 0)
然而,当我知道它在那里时,却找不到匹配的。如果我去掉contains()调用,它确实会找到表单元格,但是我真的不确定出了什么问题。不幸的是(对我来说),这可能像使用错误的语法一样简单…:(

最终的结果是选择器字符串有一个变量,但因为即使直接使用字符串也不起作用…

.size()
替换为
.length

还要检查它是否正在查找小写的“ke”

这对我有用()

它查找一个属性为“name”且值为“FirstName”的td,在td内部,也就是说,td内部的html包含字符串“prueba”.size()或length,这两种方法都有效

<table><tr><td name="FirstName"><a class="edit">prueba</a> </td></tr></table>

$(document).ready(function(){

    if ($("table:eq(0)").find("td[name=FirstName]:contains('prueba')").size() > 0)
  {
      alert("yes");
  }

});
prueba
$(文档).ready(函数(){
if($((“表:eq(0)”).find(“td[name=FirstName]:contains('prueba')”).size()>0)
{
警惕(“是”);
}
});

您可以通过以下方式扩展jQuery的选择器:

$.expr[':'].icontains = function(obj, index, meta, stack){
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};
这将为您提供一个新的伪选择器
:icontains(text)
,其工作原理类似于
:contains(text)
,但不区分大小写


请参阅:jQuery的文档页面上的
:contains(text)

您的意图是什么?如果我们不知道您想做什么,很难判断您是否做对了。:)您可以省去单引号,顺便说一句,这样您的选择器就变成
“td[name=firstName]:contains(ke)”
。它选择了所有具有值为“firstName”的name属性的td元素,并且td元素的文本节点内容必须包含字符串“ke”。注意:您还使用了
.find()
,它在
$(this)
的子元素中搜索,不包括$(this)。我必须运行,所以无法检查,但这很可能是问题所在。如何设置不区分大小写的contains?