我似乎无法弄清楚如何获取表中元素的offsetTop。它适用于表外的元素,但表中的所有元素都返回相同的结果,它通常位于页面的顶部。我在Firefox和Chrome中试过这个。如何获取表中元素的offsetTop?
答案 0 :(得分:21)
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 };
}