我正在尝试访问焦点<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())
});
});
答案 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]更适合这种情况。