如何在.each的基础上增加jQuery值



我有一个片段:

$(document).ready(function(){
$('.imgtlist').each(function(index) {
$('#slide_box').attr('width', + 135);
});
});

重要的是,在加载时,计算类别为.imgtlist的节点数量,并将135添加到#slide_box的宽度属性。

我是否需要为每个循环定义一个var,然后根据.imgtlist的数量增加?

试试这个:

$("#slide_box").width($("#slide_box").width() + 135 * $(".imgtlist").length);

这使#slide_box的宽度增加了135*个.imgtlist元素的数量。

这个片段应该在不迭代子元素的情况下完成。

也可以使用父元素的width()方法,这样就不必搜索width属性。

$(document).ready(function(){
$('#slide_box').width($('.imgtlist').length * 135);
});

不要认为您需要每个语句。为什么不试试

var number = $('.imgtlist').length * 135;
$('#slide_box').attr('width', number);

这会让你得到项目的数量,乘以135,这将是你在每个语句中的数字。那么你只应用属性一次。

如果将函数作为参数传递,它将获得旧的width作为参数。

$('#slide_box').width(function(i, width) {
return width+ 135 * $(".imgtlist").length;
});

最新更新