jquery - 如何在JQuery中获取当前元素的前一个兄弟元素的大小

标签 jquery

我有点被以下 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/

相关文章:

javascript - 如何显示页眉,当我们使用 jquery 单击垂直选项卡时

jquery - 选择接下来的 n 个具有 foo 类的元素

javascript - 具体5 ccm_activateTabBar() 未登录时未定义

javascript - 单击时调整 div 大小以适应窗口(工作)并在第二次单击时重新调整大小(不工作)

javascript - 避免 jquery 追加结束标签

javascript - 如何在 Angular.js 中移动到下一步或上一步?

javascript - jQuery 标签模仿

javascript - 按单词拆分,除非短语包含该单词

jquery - 如何在添加/删除嵌套子项时在每个级别自动更改祖先高度

javascript - 我在网站上做的过渡效果有问题?