我有一个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”是正确的......我对此搞砸了...... 是否有任何另一种巧妙的解决方案来实现这一目标....
答案 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>
$("#table_1 tr:eq(100)").css(/*...*/);
或者如果您的行有ID和 - 或使用实时元素插入,
$("#table_1 tr#row_100").css(/*...*/);