我假设由于您的问题被标记为 jQuery,因此您正在使用 jQuery。
如果你有这样的 div(注意我添加的几个类):
<div class="oddrow rows_to_add">
<span class="title">1 - 1215 - Magna Carta</span><br/>
<span class="size">size: <span class="size">229.1</span> MB</span>
<input name="1215 - Magna Carta" class="add_when_checked" type="checkbox">
<div>
<div class="evenrow rows_to_add">
<span class="title">1 - 1215 - Magna Carta</span><br/>
<span class="size">size: <span class="size">229.1</span> MB</span>
<input name="1215 - Magna Carta" class="add_when_checked" type="checkbox">
<div>
和总div:
<div id="total>total = <span id="total"></span></div>
总结它们的jQuery代码:
$( '.add_when_checked' ).change( function() {
var total = 0;
$( '.rows_to_add' ).each( function() {
var $this = $( this );
if ( $this.find( '.add_when_checked' ).attr( 'checked' ) ) {
total += $this.find( '.size' ).html();
}
} );
$( '#total' ).html( total );
} );
基本上这就是说,当一个复选框改变状态时,循环使用类“rows_to_add”的所有div,检查何时选中了类“add_when_checked”的包含复选框,如果是这样,则在类“size”的范围内添加值"总计。获得总数后,将其放在 id 为“total”的 div 中。
另一种方式可能是这样的:
$( '.add_when_checked' ).change( function() {
var total = 0;
$( '.add_when_checked:checked' ).each( function() {
total += $( this ).parent().find( '.size' ).html();
} );
$( '#total' ).html( total );
} );
它使用选择器来查找选中哪些复选框而不是条件,然后使用父遍历来查找相关的大小跨度。