Javascript 如何找到元素在其父容器中的位置?
考虑下图: 我想计算子元素在其直接父元素内的垂直偏移。请注意,子元素有一个边距(用浅蓝色表示) jQuery提供了,但不幸的是,该方法计算偏移量: “…相对于偏移父对象。” 在这种情况下,父元素的Javascript 如何找到元素在其父容器中的位置?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,考虑下图: 我想计算子元素在其直接父元素内的垂直偏移。请注意,子元素有一个边距(用浅蓝色表示) jQuery提供了,但不幸的是,该方法计算偏移量: “…相对于偏移父对象。” 在这种情况下,父元素的位置未设置为相对,不幸的是,这无法更改 尽管如此,是否有任何方法可以获取子元素相对于其直接父元素的偏移量?您可以使用 $(this).offset().top - $(this).parent().offset().top 我认为这没有考虑到父母的边界,是吗?例如,如果父元素具有8px边框,则上面的
位置
未设置为相对
,不幸的是,这无法更改
尽管如此,是否有任何方法可以获取子元素相对于其直接父元素的偏移量?您可以使用
$(this).offset().top - $(this).parent().offset().top
我认为这没有考虑到父母的边界,是吗?例如,如果父元素具有
8px
边框,则上面的计算将导致偏移量8px
大于它应该的值。@NathanOsman:不幸的是,它没有。假设边框是统一的,您可以通过减去$parent.outerHeight()-$parent.height()
进行补偿,但这对父级或子级的边距没有任何影响。@NathanOsman您是否能够更改父级或子级的CSS
?如果可以,可以添加框大小:边框框代码>并且不必担心边界。