我有一个<ul>
列表,其中所有子<li>
都有一个像这样大小的“自制”属性:
<ul class="container">
<li size="3"></li>
<li size="5"></li>
<li size="2"></li>
</ul>
如何获取所有孩子的大小值然后将其添加到,所以我最终得到一个等于(在这种情况下)10的变量?
孩子的数量和size
数字是动态的,所以我猜我需要某种循环?
答案 0 :(得分:5)
这是最简单的方法:
var sum = 0;
$('.container li').each(function() {
sum += +$(this).attr('size');
});
console.log(sum);
对于现代浏览器来说,这是一种更复杂的方式:
var sum = $('.container li').map(function() {
return +$(this).attr('size');
}).get().reduce(function(a, b) {
return a + b;
});
console.log(sum);
答案 1 :(得分:1)
尝试,
var sum = 0;
$('.container li[size]').each(function(){
sum += +$(this).attr('size');
});
console.log(sum);
注意:坦率地说,我只是从VisioN的答案中复制了总结内容。
答案 2 :(得分:0)
你的意思是:
var sum = 0;
$('.container li').each(function() {
var p = parseInt($(this).prop('size'));
sum += p;
});
alert(sum);
<强> Working Fiddle 强>
答案 3 :(得分:0)
试试这个
$(function(){
var sum = 0;
$(".container>li[size]").each(function(){
var p = parseInt($(this).attr('size'));
sum += p;
});
alert(sum);
});