我想知道如何使用jquery 过滤器方法来完成这些工作。
在表行中选择单元格1至4和6至8。
或
在该表的TR中选择单元格1和单元格6至8。
我已经测试过这些方法,但是它们没有用。
第一个:过滤器(‘gt(2):lt(4),gt(7):lt(8))'
第二个:过滤器(‘eq(2),gt(7):lt(8)')
在下面的代码中,结果可能类似于(单元号1至8,不包括第一单元的cell5 )和(cell1单元6,单元7,第二单元的单元8)。
<table cellpadding="0" cellspacing="0" border="0" class="display" id="selection">
<tbody>
<tr>
<td>cell1</td>
<td>cell2</td>
<td>cell3</td>
<td>cell4</td>
<td>cell4</td>
<td>cell5</td>
<td>cell6</td>
<td>cell7</td>
<td>cell8</td>
</tr>
</tbody>
</table>谢谢。
发布于 2012-08-20 15:45:32
您可以使用jquery过滤器。
// exclude 5th column (zero based indexes)
$(your_selector_to_cels).filter(function(index) { return index != 4; })
// get only column 1, 6, 7, 8
$(your_selector_to_cels).filter(function(index) { return index == 0 || (index >= 5 && index <= 7); })我不知道你想做多少硬编码,但这是一种方法。
发布于 2012-08-20 15:45:37
这可能有助于:
$('TABLE TD').slice(1, 9).not(':eq(4)').css({'color': '#f00'});http://jsfiddle.net/NNNqF/
发布于 2012-08-20 16:09:39
您可以使用此选择器:
$('#selection tr:eq(0)').find('td:lt(4), td:gt(4):lt(3)')第一部分$('#selection tr:eq(0)')确保只从特定行选择单元格(在本例中,为0行,第一行)。
关于第二部分的几点说明:
find在以前返回的jQuery对象中进行选择。gt和lt选择器是基于零索引的.因此,为了选择第一个单元格,可以使用'td:lt(1),意思是“选择索引小于1的td”。同样,要选择最后一个元素,您必须使用td:gt(8),这意味着“选择索引大于8的td (因为它是基于零的,所以10个元素从0到9,因此9是最后一个)。,分隔多个选择器。所以'td:lt(1), td:gt(8)'会给你第一个和最后一个细胞gt和lt时,会有一个特定的行为。注意,要获得6、7和8,选择器是td:gt(4):lt(3)。gt(4)将获得索引大于4的单元格(请记住,在零索引集合中,索引5是第六项),当您使用:lt(3)链接索引时,索引现在相对于前一个gt返回的值,这最终意味着您请求的是接下来的3项。https://stackoverflow.com/questions/12040612
复制相似问题