我正在尝试使用 .each() 来运行 DOM 并根据一组元素的高度创建多个变量。假设列表中所有图像的宽度。
在这个简化的示例中,我想根据列表项包含的图像的宽度为无序列表中的每个列表项添加宽度。这样列表项的宽度将等于内部图像的宽度。
HTML
<ul>
<li><img src="image_01.jpg" width="100" /></li>
<li><img src="image_02.jpg" width="60" /></li>
<li><img src="image_03.jpg" width="220" /></li>
<li><img src="image_04.jpg" width="40" /></li>
</ul>
查询
var itemWidth = 0;
$('ul li img').each(function () {
var tmpWidth = $(this).width();
if (tmpWidth > itemWidth) {
itemWidth = (tmpWidth);
elemWidth = $('ul li').width();
$('ul li').css( "width", itemWidth );
}
});
现在它正在设置每个列表项的宽度,但它将它们都设置为列表中最大的图像,而不是根据其中的图像为每个列表项设置不同的宽度。
我是否需要用一个数组创建一个 for 循环来保存每个宽度对应的多个变量?
这是小提琴的一个例子:http: //jsfiddle.net/EBMM2/