我正在尝试编写一个jQuery选择器来选择一系列的表格单元格 (minRow, minCol) 到 (maxRow, maxCol)。
我有一个可以选择水平范围 (col 1, row 2) 至 (col 3, row 2) 的选择器:
因为 td 选择器不会循环遍历行,它只会选择第一个。
使用 map 和 each 函数的版本可行:
但是这种方法更加丑陋。
是否有更优雅的方式来实现这个目标呢?
如果能找到比
以上水平和垂直范围以及区块范围的示例可在此 jsfiddle 中查看:http://jsfiddle.net/jghaines/qeLhgw4f/4/。
我有一个可以选择水平范围 (col 1, row 2) 至 (col 3, row 2) 的选择器:
$('tr:lt(3):gt(1) td:lt(4):gt(0)')
但是对应的垂直范围 (col 2, row 1) 到 (col 2, row 3) 则无法正常工作:$('tr:lt(4):gt(0) td:lt(3):gt(1)')
因为 td 选择器不会循环遍历行,它只会选择第一个。
使用 map 和 each 函数的版本可行:
$('tr:lt(4):gt(0)').map( function() { return $(this).find('td:lt(3):gt(1)') } ).each( function() { /* this.do_something */ } );
但是这种方法更加丑陋。
是否有更优雅的方式来实现这个目标呢?
如果能找到比
:lt():gt()
更优雅的范围选择器就更好了。以上水平和垂直范围以及区块范围的示例可在此 jsfiddle 中查看:http://jsfiddle.net/jghaines/qeLhgw4f/4/。
$('table#4 tr').slice(1,4).find('td').slice(1,4).addClass('yellow');
- Jason