Jquery选择范围

时间:2013-12-03 16:45:28

标签: jquery html css3

我有一张桌子,我想选择第n个孩子(3) - nth-child(9), 是他们在jquery / css中选择范围的方法吗?我打算对每个人进行硬编码,但我知道必须有更清洁的方法来做到这一点吗?

有什么想法?

表格:

<table>
 <thead>
     <tr>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
</tr>
 </thead>
 <tbody>
     <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
</tr>
 </tbody>

4 个答案:

答案 0 :(得分:5)

尝试:gt():lt()

$('table tbody td:gt(1):lt(7)')
  第二个元素之后的

:gt(1):lt(7)选择元素(索引从0开始,因此:gt(1)引用第二个元素)从第3个元素开始   元素并选择接下来的7个元素

<小时/> .slice()

$('table thead th').slice(2, 9)
  

.slice(2, 9)选择从第3个元素开始的第2个元素之后的元素   元素直到第9个元素(包括第9个元素)

fiddle Demo

答案 1 :(得分:2)

不确定。您可以使用jQuery的slice()函数,如下所示:

var subset = $('table tbody td').slice(3, 6);

或者您可以按如下方式合并:gt():lt()选择器:

var subset = $('table tbody td:gt(2):lt(10)');

请注意:我提供的选择器是任意的,用于演示正确的语法。您没有指定要选择的元素,因此可能需要相应地更新选择器。

答案 2 :(得分:0)

尝试:

$("tr:first").find("th").slice(2,9).addClass("select");
$("tr:gt(0)").each(function(){
    $(this).find("td").slice(2,9).addClass("select");
});

Fiddle here.

答案 3 :(得分:0)

试试这个:
--- css ---

TD {    边框:1px固体;    最小宽度:20px;    身高:20px; }

--- --- JavaScript的

$( "td" ).slice( 3, 9 ).css( "background-color", "red" );

您可以看到演示here