我必须失去理智,因为这么简单的事情无效:http://jsfiddle.net/vB7Nd/
我正在尝试通过列表在循环中累加项目成本,并将价格附加到标题中的标题标记,但我似乎无法定位它:
<div id="holder">
<div class="container">
<span class="title1" style="border: 1px solid green;">Total:</span>
<ul>
<li cost="2" type="clothes">Car</li>
<li cost="5" type="clothes">Hat</li>
</ul>
</div>
<div class="container">
<span class="title1" style="border: 1px solid green;">Total:</span>
<ul>
<li cost="4" type="product">Coffee</li>
<li cost="4" type="product">Milk</li>
</ul>
</div>
</div>
$('#holder ul').each(function(index, value) {
var cost = 0;
$(this).children().each(function(index,value) {
var classification = $(this).attr('type');
switch(classification) {
case 'clothes':
console.log(parseInt($(this).attr('cost')));
cost += parseInt($(this).attr('cost'));
//this line does not work:
$(this).parents('.container').closest('title1').css('border','1px solid red');
//neither does this:
$(this).parent().parent().find('title1').append(cost);
break;
}
});
console.log('cost is' +cost);
});
答案 0 :(得分:4)
从我所看到的,它可以像
一样简单$('#holder .container').each(function (index, value) {
var total = 0;
$(this).find('li').each(function () {
total += +$(this).attr('cost') || 0;
})
$(this).find('.title1').append(total)
})
演示:Fiddle
注意:我使用了一元加运算符将成本的字符串值转换为数字,而不是使用parseInt()
答案 1 :(得分:0)