在表中获取offsetTop元素

Mat*_*att 8 html javascript offset

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

SLa*_*aks 22

offsetTop返回相对于的值offsetParent; 你需要递归增加offsetParent.offsetTop通过所有的父母,直到offsetParentnull.考虑使用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 };
}
Run Code Online (Sandbox Code Playgroud)