如何在$ .each循环中添加结果?

mil*_*ano 3 html javascript jquery

嗨,我试图读取topmenu元素中的每个项目的宽度,并添加项目的宽度,并指定为avariable.但是当我运行这段代码时,我正在警告NaN这段代码中的问题是什么:

$(document).ready(function(){
    $('.topmenu').each(function(menu){
        var btext = $(this).find('.baritem').width();
        alert(btext);
        var itemswidth = +itemswidth+btext;
        alert(itemswidth);
        //var width = getTextWidth(btext,"arial","40");
        //alert(width);     
    });
});
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 11

这条线

var itemswidth = +itemswidth+btext;
Run Code Online (Sandbox Code Playgroud)

增加undefined一个数字.这给了NaN.您需要在进入循环之前初始化itemswidth0:

$(document).ready(function(){
  var itemswidth = 0;
  $('.topmenu').each(function(){
     var btext = $(this).find('.baritem').width();
     itemswidth += btext;
     console.log(itemswidth); // better than alert
  });
});
Run Code Online (Sandbox Code Playgroud)

而对于弗洛里安:

$(document).ready(function(){
    var itemswidth = $('.topmenu .baritem').get().reduce(function(t,e){ 
        return t+$(e).width()
    }, 0);
    console.log(itemswidth);
});
Run Code Online (Sandbox Code Playgroud)