在表中获取offsetTop元素

时间:2009-06-25 16:47:44

标签: javascript html offset

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

1 个答案:

答案 0 :(得分:21)

offsetTop返回相对于offsetParent的值;您需要递归offsetParent.offsetTop通过所有父级,直到offsetParentnull。请考虑使用jQueryoffset ()方法。

编辑:如果您不想使用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 };
}