我在我的页面上有数百行的表格。每行包含选择对象。例如:如何获取表格中HTML元素的滚动位置?
<tr>
<td>
<select onchange="changeSkillLevel(this)">
<option value='1'>High</option>
<option value='2'>Medium</option>
<option value='3'>Low</option>
</select>
</td>
</tr>
当用户更改选择选项时,页面通过location.href重新加载,并附加querystrings用于功能。所有这些都可以正常工作,但是如果用户在第300行内的选择操作的页面底部停留,重定向后,它们将被带回到页面的顶部。重定向后,我想将滚动位置重置为它们所在的位置,最好突出显示包含刚刚修改的选择对象的<tr>
。
我似乎无法得到jQuery的scrollTop的返回什么,但0:
function changeSkillLevel(obj){
alert($("#" + obj.id).scrollTop())
[...]
}
警报总是返回0。我不知道我的选择是正确的得到OBJ(本)方式,我不知道我是否正确使用scrollTop()。
如果我可以捕获滚动位置,我想我可以在qstring/url中传递它,然后当页面重新加载时,抓住滚动参数并使用jquery强制滚动页面回到用户所在的位置。
1-我该如何做到这一点? 2-什么是让jquery选择器附加到“obj”参数,它来自选择器对象中的“this”的最佳方式?
谢谢!
只需将书签插入行中并在URL中匹配#即可。 –
我之前在行中尝试过书签,它似乎没有工作。你能举个例子吗?我喜欢这种方法,根本不需要使用js。 – HerrimanCoder
书签只是带有'name =“uniqueanchorname”'的锚,没有别的。重新加载链接只需要附加在它们末尾的'#uniqueanchorname'。您可以通过手动更改您的URL来测试现有锚点以指向每个名称。从内存中,标准是在书签定位符上设置'id ='和'name ='以支持旧浏览器。 –