我有一点麻烦迭代和检索宽度()的值。

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

);

因此每个“MyClass的”元素i想找到的宽度(一些是不同的)。

但上面的代码仅产生MyClass的的第一个实例的宽度()和后,返回0。

上能够获得的MyClass每个实例的宽度任何想法?

有帮助吗?

解决方案

使用map代替each简化代码:

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

其他提示

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

应该只是罚款。如果你表现出更多的代码我也许能找出什么错误。

<强>更新

当你运行这个方法?你等到DOM准备好,或者只是立即执行呢?如果不是,则浏览器可能不进行渲染所有这些元素的爱好。

试试这个,如果你是不是已经:

var widths = [];
$(document).ready(function() {
    $('.MyClass').each(function() {
        widths.push($(this).width());
    }); 
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top