js获取复选框的tr中的值,并且算出合计

1:首先考虑复选框存在两种情况:一个是全选,全不选;另一个是单个选中与取消事件。

2:看实例.

<table>

<tr>

<td><input type="checkbox" title="全选" class="checkbox0" id="checkAll000" /></td>

<td>年份</td>

<td>期数</td>

<td>值</td>

</tr>

<#if olist1??>
<#list olist1 as o>

<tr year="${o.ord_year!}" iss="${o.iss!}">

<td><input type="checkbox" name="checkedid" value="${o.cus_id!}-${o.user_id!}-${o.ord_year!}-${o.iss!}" /></td>

<td>${o.ord_year!}</td>

<td>${o.iss!}</td>

<td class="vl">${o.value!}</td>

</tr>

</#list>

</#if>

<#if hjlist1??>
<#list hjlist1 as hj1>

<tr class="hj" year="${hj1.ord_year!}" iss="${hj1.iss!}">

<td>合计</td>

<td>${hj1.ord_year!</td>

<td>${hj1.iss!}</td>

<td class="hjvl" stock="200">需要算出来的值</td>

</tr>

</#list>

</#if>

</table>

3:js代码

核心方法:

function parseCheckBox(chk){
var ccc = $(chk).prop("checked");//是否选中true/false
var year =$(chk).parents("tr").attr("year");
var iss =$(chk).parents("tr").attr("iss");
//tr中的td的值
$(chk).parents("tr").find("td[class='vl']").each(function(g){
var v = $.trim($(this).text());
if(v.length==0){
v = 0;
}
v = parseInt(v);
var edi = $.trim($(this).attr("edi"));
$(".heji").each(function(n){//合计的tr
var y = $(this).attr("year");
var i = $(this).attr("iss");
if(y==year && i == iss){
$(this).find("td[class='hjvl']").each(function(){
if($(this).attr("edi")==edi){
//库存
var stock = $.trim($(this).attr("stock"));
if(stock.length==0){
stock=0;
}
stock = parseInt(stock);
//旧合计
var s = $.trim($(this).text());
if(s.length==0){
s=0;
}
s = parseInt(s);
if(ccc){//选中
if(v+s>0){
if((v+s)>stock){
$(this).css({"color":"red"});
}
$(this).text(v+s);
}
}else{//取消选中
if(s-v>0){
if((s-v)>stock){
$(this).css({"color":"red"});
}else{
$(this).css({"color":"black"});
}
$(this).text(s-v);
}else{
$(this).text("");
}
}
}
});
}
});
});
}

$(function(){

//全选
$("#checkAll000").click(function(){
var v = $(this)[0].checked;
$("input[name='checkedid']").each(function(){
if(!this.checked){//判断之前是否已经选中
if (v) {
this.checked = true;
parseCheckBox($(this));
}
}else{
if (!v) {//判断之前是否已经没有选中
this.checked = false;
parseCheckBox($(this));
}
}
});
});
//单个复选框点击
$("input[name='checkedid']").click(function(){
parseCheckBox($(this));
});
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值