【发布时间】:2010-11-05 21:50:47
【问题描述】:
我似乎无法弄清楚如何获取表格中元素的 offsetTop。它适用于表格外的元素,但表格内的所有元素都返回相同的结果,并且通常位于页面顶部。我在 Firefox 和 Chrome 中试过这个。如何获取表格中某个元素的 offsetTop?
【问题讨论】:
标签: javascript html offset
我似乎无法弄清楚如何获取表格中元素的 offsetTop。它适用于表格外的元素,但表格内的所有元素都返回相同的结果,并且通常位于页面顶部。我在 Firefox 和 Chrome 中试过这个。如何获取表格中某个元素的 offsetTop?
【问题讨论】:
标签: javascript html offset
offsetTop 返回一个相对于offsetParent 的值;你需要通过所有的父母递归地添加offsetParent.offsetTop,直到offsetParent是null。考虑使用jQuery的offset()方法。
编辑:如果你不想使用jQuery,你可以写一个这样的方法(未经测试):
function offset(elem) {
if(!elem) elem = this;
var x = elem.offsetLeft;
var y = elem.offsetTop;
while (elem = elem.offsetParent) {
x += elem.offsetLeft;
y += elem.offsetTop;
}
return { left: x, top: y };
}
【讨论】: