如何计算悬停时所有先前的'li'元素宽度?

时间:2013-04-17 14:22:54

标签: jquery hover width

我有列表,我正在尝试编写jQuery代码来计算之前的li宽度,而不是将鼠标悬停在某个元素上。例如,如果我悬停第三个元素,我需要获得第一个+第二个元素宽度。

<ul>
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
    <li>Fourth</li>
</ul>

目前的代码:

jQuery('ul li').each(function() {
    jQuery(this).hover(function () {
        jQuery(this).prevAll().width();
    });
});

但我只获得一个前一个元素宽度。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

如果你想要宽度总和:

jQuery('ul li').each(function() {
    jQuery(this).hover(function () {
        var prevWidth = 0
        jQuery(this).prevAll().each(function(){prevWidth  += $(this).width();});
        alert(prevWidth );
    });
});

答案 1 :(得分:1)

jQuery('ul li').on('mouseenter', function () {
    var width = 0;
    jQuery(this).prevAll().each(function() {
        widht = width + $(this).width();
    });
    console.log(width);
});

答案 2 :(得分:0)

试试这个 -

jQuery(this).prevAll().each(function(){
  $(this).width();
});