0

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

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

所以对于每个“MyClass”元素,我想找到宽度(有些是不同的)。

但是上面的代码只产生了 MyClass 的第一个实例的 width() 并在之后返回 0。

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

4

2 回答 2

4

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

$('.MyClass').map( function() {
    return $(this).width();
});
于 2009-05-13T04:36:34.237 回答
2
var widths = [];
$('.MyClass').each(function() {
    widths.push($(this).width());
}); 

应该工作得很好。如果您显示更多代码,我可能会找出问题所在。

更新:

你什么时候运行这个方法?您是等到 DOM 准备好,还是立即执行它?如果没有,浏览器可能还没有完成所有这些元素的渲染。

如果你还没有,试试这个:

var widths = [];
$(document).ready(function() {
    $('.MyClass').each(function() {
        widths.push($(this).width());
    }); 
});
于 2009-05-13T04:07:41.723 回答