2009-06-25 48 views
5

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

回答

17

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 }; 
} 
+1

这并不在IE7(可靠)的工作。 IE5-7不计算具有相对定位的元素作为offsetParents。 – KeatsKelleher 2011-03-14 21:06:29

相关问题