我似乎无法弄清楚如何获得一个表中的一个元素的的offsetTop。 它适用于表外的元素很好,但所有表内的元素返回相同的结果,并在页面的顶部通常是。 我在Firefox和Chrome尝试这个。 我如何在一个表中的元素的offsetTop?
Answer 1:
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 };
}
文章来源: Getting offsetTop of element in a table