javascript - jQuery:如何获取所有先前元素的宽度总和并将其放入数据属性

标签 javascript jquery

如何获取每个先前元素的宽度并将它们相加(在页面加载后)

然后把值放在每个元素的数据属性中

这是 jsfiddle 上的代码 http://jsfiddle.net/jSfKJ/2/

那么如何制作这段代码

<ul>
 <li style="width:130px">Num 1</li>
 <li style="width:150px">Num 2</li>
 <li style="width:140px">Num 3</li>
 <li style="width:175px">Num 4</li>
 <li style="width:100px">Num 5</li>
</ul>

变成这样

<ul>
 <li style="width:130px" data-num="0">Num 1</li>
 <li style="width:150px" data-num="130">Num 2</li>
 <li style="width:140px" data-num="280">Num 3</li>
 <li style="width:175px" data-num="420">Num 4</li>
 <li style="width:100px" data-num="595">Num 5</li>
</ul>

这张图片更清楚地解释了我想要什么
enter image description here
我希望我已经很好地解释了我想要的东西

最佳答案

一个简单的方法是这样的:http://jsfiddle.net/jSfKJ/5/

您保存一个 var 并在每个中添加元素的宽度:

(function(){
    var total = 0;
    $('li').each(function() {
        $(this).attr('data-num', total)
        total += $(this).width()
    });
})();

此方法允许您将each 的数量减少到 1

关于javascript - jQuery:如何获取所有先前元素的宽度总和并将其放入数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628206/

相关文章:

javascript - 鼠标离开 Bootstrap 导航栏时背景颜色发生变化

javascript - 避免在 jQuery 脚本中使用 HTML-in-string/html()

javascript - 为什么 ISO 日期转换在 javascript 环境中不一致以及如何修复?

javascript - 如何使用 jquery/javascript 分割字符串,输出为 "1,2,222,FF-GA"

javascript - 父 div 上的 jQuery 但不是 child

javascript - 为什么Function的原型(prototype)是一个函数,为什么Object继承自函数?

javascript - 与表格中的文字完美对齐

jquery - 如何知道 ".target2"是否应用于 jQuery 对象?

php - 如何在wordpress自定义导航中显示子项

javascript - 即使用户正在导航到其他页面,也会在一段时间后打开弹出窗口