我在迭代和检索 width() 值时遇到了一些麻烦。
$(".MyClass").each(
function () {
elemWidth = $(this).width();
});
所以对于每个“MyClass”元素,我想找到宽度(有些是不同的)。
但是上面的代码只产生了 MyClass 的第一个实例的 width() 并在之后返回 0。
关于能够获得 MyClass 每个实例的宽度的任何想法?
我在迭代和检索 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());
});
});