我在迭代和检索width()值方面遇到了一些麻烦。
$(".MyClass").each(
function(){
elemWidth=$(this).width();
}
);
所以对于每个“MyClass”元素,我想找到宽度(有些是不同的)。
但是上面的代码只生成MyClass的第一个实例的width()并在此之后返回0。
有关能够获得MyClass的每个实例的宽度的任何想法吗?
答案 0 :(得分:4)
使用map
代替each
来简化代码:
$('.MyClass').map( function() {
return $(this).width();
});
答案 1 :(得分:2)
var widths = [];
$('.MyClass').each(function() {
widths.push($(this).width());
});
应该工作得很好。如果你展示了更多的代码,我可能会弄清楚出了什么问题。
<强>更新强>
你什么时候运行这种方法?您是否在等待DOM准备好,或者只是立即执行它?如果没有,浏览器可能还没有完成渲染所有这些元素。
如果你还没有尝试这个:
var widths = [];
$(document).ready(function() {
$('.MyClass').each(function() {
widths.push($(this).width());
});
});