选择小于聚焦标记索引的所有标记

时间:2011-07-07 10:34:33

标签: jquery

我正在尝试访问焦点<tr>标记的<tr>标记,但它会显示所有标记。任何人都可以解决这个问题吗?

以下是我的HTML和javascript代码:

<table>
   <tr><td><input type="text"></td></tr>
   <tr><td><input type="text"></td></tr>
   <tr><td><input type="text"></td></tr>
   <tr><td><input type="text"></td></tr>
</table>

以下是我写的脚本:

 $('TABLE TR TD').find('input').focus(function()
 {
   var ParID=$(this).parents('TR').index();
   $(this).parents('TR').siblings('TR').prevAll("TR").find('input').each(function()
     {
       alert($(this).parents('TR').index()) 
     });
 });

1 个答案:

答案 0 :(得分:2)

这应该这样做:

$('table input').focus(function() {
   var $previousRows = $(this).closest('tr').prevAll('tr');
});

你的问题是这部分:.siblings('TR').prevAll("TR")

.siblings('TR')返回所有行(也是最后一行)时,.prevAll("TR")也会返回所有行。只是删除.siblings('TR')也可能会正常工作。

请注意.closest() [docs]更适合这种情况。