9

我似乎无法弄清楚如何获取表中元素的 offsetTop。它适用于表格外的元素,但表格内的所有元素都返回相同的结果,并且通常位于页面顶部。我在 Firefox 和 Chrome 中试过这个。如何获取表中元素的 offsetTop?

4

1 回答 1

25

offsetTop返回一个相对于offsetParent; 您需要递归地添加offsetParent.offsetTop所有父母,直到offsetParentis 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 };
}
于 2009-06-25T16:53:29.210 回答