Javascript 如何找到元素在其父容器中的位置?

Javascript 如何找到元素在其父容器中的位置?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,考虑下图: 我想计算子元素在其直接父元素内的垂直偏移。请注意,子元素有一个边距(用浅蓝色表示) jQuery提供了,但不幸的是,该方法计算偏移量: “…相对于偏移父对象。” 在这种情况下,父元素的位置未设置为相对,不幸的是,这无法更改 尽管如此,是否有任何方法可以获取子元素相对于其直接父元素的偏移量?您可以使用 $(this).offset().top - $(this).parent().offset().top 我认为这没有考虑到父母的边界,是吗?例如,如果父元素具有8px边框,则上面的

考虑下图:

我想计算子元素在其直接父元素内的垂直偏移。请注意,子元素有一个边距(用浅蓝色表示)

jQuery提供了,但不幸的是,该方法计算偏移量:

“…相对于偏移父对象。”

在这种情况下,父元素的
位置
未设置为
相对
,不幸的是,这无法更改

尽管如此,是否有任何方法可以获取子元素相对于其直接父元素的偏移量?

您可以使用

$(this).offset().top - $(this).parent().offset().top

我认为这没有考虑到父母的边界,是吗?例如,如果父元素具有
8px
边框,则上面的计算将导致偏移量
8px
大于它应该的值。@NathanOsman:不幸的是,它没有。假设边框是统一的,您可以通过减去
$parent.outerHeight()-$parent.height()
进行补偿,但这对父级或子级的边距没有任何影响。@NathanOsman您是否能够更改父级或子级的
CSS
?如果可以,可以添加
框大小:边框框并且不必担心边界。