我是jQuery的新手,但只是尝试创建一个可以用来过滤表的函数。我已经设置了表,以便我可以按类选择所有行(工作正常)并在结果上调用each()。在每个()的回调中,我得到了这个if语句:
if ($(this).find("td[name=firstName]:contains('ke')").size() > 0)
然而,当我知道它在那里时,它找不到匹配。如果我取出contains()调用它确实找到了表格单元格,但是我真的不确定是什么问题。不幸的是(对我而言)这可能就像使用错误的语法一样简单...... :(
最终结果是选择器字符串有一个变量,但是因为即使直接使用字符串也不起作用......
答案 0 :(得分:1)
将.size()
替换为.length
还检查它是否找到小写'ke'
答案 1 :(得分:1)
你可以用这个来扩展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)
,但不区分大小写。
请参阅:contains(text)
答案 2 :(得分:0)
这对我有用(http://jsfiddle.net/dactivo/PHMkx/)。
它查找带有值为“FirstName”的属性“name”的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");
}
});