如何选择特定的行?

时间:2010-11-19 14:12:02

标签: jquery

我有一个id为“mytable”的表,里面有很多行...

我想使用jquery ..

在其中选择id =“row_100”的行

怎么做......

代码

function highlight_tran(tranid) 
{
    var rowpos = $('#'+tranid).position();
    $('#trtable').scrollTop(rowpos.top); 
}

其中trtable是表的容器ID

tranid是tr的id,这里的tranid是一个用户想要看到的...所以它可能不会被视为这是可滚动的表,以使其查看我正在执行此功能,用于自动滚动... < / p>

现在它正在工作到最后一行,但在那之后当我们选择任何顶行时,autoscroll将不会移动到正确的TR位置,尽管传递的“tranid”是正确的......我对此搞砸了...... 是否有任何另一种巧妙的解决方案来实现这一目标....

4 个答案:

答案 0 :(得分:4)

为什么不直接使用JQuery选择器?

$("#row_100");

如果您在不同的表中选择某一行,也许您应该考虑为您的表分配id,并为该行分配class

 <table id="first_part">
       ...
       <tr class="special">...</tr>
       ...
   </table>

   <table id="second_part">
      ...
      <tr class="special">...</tr>
   </table>

然后选择使用类似$("#first_part .special")的内容。

答案 1 :(得分:1)

你可以在这里使用#id selector(这也是最快的方式),如下所示:

$("#row_100");

答案 2 :(得分:0)

为了完整起见,如果row_100表示​​第100行,你也可以这样做

$("tr:eq(99)")   - 如果你有多个表,那将选择tr的第100个实例,我们在tr之前使用表的id:

$("#myTable tr:eq(99)")

修改

好的,所以我测试了这个,它至少选择了给定的正确行

var selector = "#trtable tr:eq(" + tranid + ")";
$(selector).scrolltop(this.top);

答案 3 :(得分:0)

如果您有多个包含大量行的表,则可以通过执行以下操作来使用jquery Descendant Selector

<table id="table_1">
   <tr><td>1</td></tr>
   <tr><td>2</td></tr>
   <tr><td>3</td></tr>
   <!-- .... -->
   <tr><td>102</td></tr>
   <tr><td>103</td></tr>
</table>

的jQuery

$("#table_1 tr:eq(100)").css(/*...*/);

或者如果您的行有ID和 - 或使用实时元素插入,

$("#table_1 tr#row_100").css(/*...*/);