通过迭代Jquery width()?

问题描述 投票:0回答:2

在迭代和检索width()值时遇到麻烦。

$(".MyClass").each(
    function () {
        elemWidth = $(this).width();
    });

因此,对于每个“ MyClass”元素,我想找到宽度(有些不同)。

但是以上代码仅生成MyClass的第一个实例的width(),并在此之后返回0。

关于能够获取MyClass的每个实例的宽度的任何想法?

javascript jquery width each
2个回答
4
投票

使用map而不是each简化代码:

$('.MyClass').map( function() {
    return $(this).width();
});

2
投票
var widths = [];
$('.MyClass').each(function() {
    widths.push($(this).width());
}); 

应该可以正常工作。如果您显示了更多代码,我也许可以找出问题所在。

更新:

您何时运行此方法?您是在等待DOM准备就绪,还是立即执行它?如果不是,浏览器可能还没有完成所有这些元素的渲染。

如果尚未尝试,请尝试:

var widths = [];
$(document).ready(function() {
    $('.MyClass').each(function() {
        widths.push($(this).width());
    }); 
});
© www.soinside.com 2019 - 2024. All rights reserved.