在迭代和检索width()值时遇到麻烦。
$(".MyClass").each(
function () {
elemWidth = $(this).width();
});
因此,对于每个“ MyClass”元素,我想找到宽度(有些不同)。
但是以上代码仅生成MyClass的第一个实例的width(),并在此之后返回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());
});
});