我想知道如何使用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个单元格除了第一个的第5个单元格)和(第1个单元格第6个单元格第7个单元格用于第二个
<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>
谢谢。
答案 0 :(得分:1)
您可以使用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); })
我不知道你想要做多少硬编码,但这是一种方法。
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用此选择器:
$('#selection tr:eq(0)').find('td:lt(4), td:gt(4):lt(3)')
第一部分$('#selection tr:eq(0)')
确保您只选择特定行(在本例中为第0行,第一行)中的单元格。
关于第2部分的几点说明:
find
在先前返回的jQuery对象中进行选择。gt
和lt
选择器基于零索引。因此,为了选择第一个单元格,您使用'td:lt(1)
,这意味着“选择索引小于1的td
”。同样,要选择最后一个,你必须使用td:gt(8)
,这意味着“选择td
索引大于8(因为它基于零,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个项目。