我有点被以下 JQuery 问题困扰:
我有以下结构:
<ul>
<li id="one">one</li>
<li id="two">two</li>
<li id="three">three</li>
<li id="four">four</li>
<li id="five">five</li>
</ul>
我希望我的代码选择 # Three,并获取 ul 到该元素的总大小。因此它需要获取 #one 和 #two 的总大小(包括边距、填充和边框)。
最有效的方法是什么?
更新:
这是我使用的最终代码,感谢@Pointy的建议。该代码用于将嵌套的 ul 子菜单定位在父 ul 开头的水平 ul 菜单的每个 li 内。
$("#menu-headermenu-1 > li.menu-item" ).each(function (index) {
var $leftWidth = ($(this).offset().left - $(this).closest('ul').offset().left);
$leftWidth = ($leftWidth * -1) ;
$(this).find('.sub-menu').css('left', $leftWidth);
});
最佳答案
如果您只需要垂直“大小”,您可以只比较 <li>
的偏移顶部“三”和<ul>
本身。
var $three = $('#three'), sz = $three.offset().top - $three.closest('ul').offset().top;
关于jquery - 如何在JQuery中获取当前元素的前一个兄弟元素的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018717/