如何获取表格中HTML元素的滚动位置?

时间:2014-01-14 14:16:55

标签: javascript jquery

我的页面上有一个包含数百行的表格。每行包含选择对象。例如:

<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重新加载页面,并附加查询字符串以获取功能。一切正常,但如果用户在第300行内的选择内操作的页面底部向下,则在重定向之后,它们将被带回页面顶部。在重定向之后,我想将滚动位置重置到它们的确切位置,最好突出显示包含刚修改的选择对象的<tr>

我似乎无法让jquery的scrollTop返回0以外的任何内容:

function changeSkillLevel(obj){
   alert($("#" + obj.id).scrollTop())
   [...]
}

警报始终返回0.我不知道我的选择器是否以正确的方式获取了obj(this),而且我不知道我是否正确使用了scrollTop()。

如果我可以捕获滚动位置,我想我可以在qstring / url中传递它,然后当页面重新加载时,抓住滚动参数并使用jquery强制将页面向下滚动到用户所在的位置。 / p>

1-如何实现这一目标? 2-将jquery选择器附加到&#34; obj&#34;的最佳方法是什么? param,来自&#34;这个&#34;在选择器对象中?

谢谢!

1 个答案:

答案 0 :(得分:1)

提交选择时内容的大小是否会发生变化? 如果没有,您可以使用当前滚动位置

$(document).scrollTop()

,将其与其他数据一起提交,然后再次将文档滚动到该位置。甚至可能是一个更好的解决方案,因为在使用原始滚动位置时页面不会跳转。