嗨,我正在尝试读取topmenu元素中每个项目的宽度,并添加项目的宽度并分配给变量。但是当我运行此代码时,我会收到警报
这段代码有什么问题:
$(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);
});
});
最佳答案
这条线
var itemswidth = +itemswidth+btext;
将
undefined
添加到数字。这给出了NaN
。在进入循环之前,您需要将itemswidth
初始化为0
:$(document).ready(function(){
var itemswidth = 0;
$('.topmenu').each(function(){
var btext = $(this).find('.baritem').width();
itemswidth += btext;
console.log(itemswidth); // better than alert
});
});
对于弗洛里安:
$(document).ready(function(){
var itemswidth = $('.topmenu .baritem').get().reduce(function(t,e){
return t+$(e).width()
}, 0);
console.log(itemswidth);
});