如果我的表格在html
中显示如下<table>
<tr>
<td>foo
<td>bar
<td>alpha
<td>beta
<td>seta
</tr>
<tr>
<td>foo1
<td>bar2
<td>alpha3
<td>beta3
<td>seta3
</tr>
</table>
我只是通过jQuery来格式化表格。
//this one perfectly works
//this turns even columns into red!!
$("td").filter(':odd').addClass('colorRedClass');
但我想使用这样的功能!有可能吗?
//i returned the value ':odd' from the function!!
//this turns every column into red!!
//this is not working as expected!!
$("td").filter(function(){
return ':odd';
}).addClass('colorRedClass');
colorRedClass在CSS中具有属性颜色:红色;
所以,我的问题是,为什么第二个不能工作?为什么第二个只能将列更改为红色?我来自c,c ++,java背景,根据我的理解,如果我在这些语言中采用相同的方式,返回应该有效。
我错过了什么?
答案 0 :(得分:3)
传递给过滤器的函数应该具有以下类型:
Type: Function( Integer index, Element element ) => Boolean
因此,如果要将元素包含在过滤集中而不是使用选择器,则期望返回true。
您可以使用index参数来确定元素是否为奇数:
$("td").filter(function(index){
var isOdd = index % 2 === 1;
return isOdd;
}).addClass('colorRedClass');