2020-11-26

序号姓名存款私房钱合计操作
1zs5000.02.350.0 行添加 | 行删除
2ls12378.5222.573218.5 行添加 | 行删除
3ww122350.022313.5121250.0 行添加 | 行删除
合计150.0 行添加 | 行删除
	<script>
	$(function(){
		//加载选中行变色方法
		loadCheckColor();
		//计算合计值
		caculateTotal();
	})
	
	//选中行变色
	function loadCheckColor() {
		$("#dictTbl tbody tr").mousedown(function () {
	        $('#dictTbl tr').each(function () {
	        	$(this).removeClass("checkColor");
	        });
	        $(this).addClass("checkColor");
	        var tr = $(this)[0];
			var rowIndex = tr.rowIndex;
			//赋值当前选中行号
	        $("#rowIndex").val(rowIndex);
	    });
	}
	
	//计算合计值的方法
	function caculateTotal(){
		//最后一行的总合计
		var lastTbodyTotal = 0.0;
		
		//遍历table,更改序号
		$("tbody tr").each(function(){
			var tr = $(this)[0];
			var rowIndex = tr.rowIndex;
			var tableLength = $("#dictTbl").find("tr").length;
			if(rowIndex == tableLength-1){
				//最后一行合计行,不更改序号
				return;
			}
			
			//当前行的列数
			var tableTdLength = $(this).find("td").length;
			$(this).parent().attr("id","tbody"+rowIndex);
			$(this).find("td").eq(0).text(rowIndex);//改已有数据的序号
			var td3 = $(this).find("td").eq(tableTdLength-4).text().replace(/[$,]+/g,"");
			var td4 = $(this).find("td").eq(tableTdLength-3).text().replace(/[$,]+/g,"");
			var total = Number(td3) + Number(td4);
			//获取加逗号分割的合计值
			var result = getSplitTotal(total.toFixed(2)+"");
			$(this).find("td").eq(tableTdLength-2).text(result);//改合计
			
			lastTbodyTotal += Number($(this).find("td").eq(tableTdLength-2).text().replace(/[$,]+/g,""));
		});
		//赋值总合计值
		var lastTbodyLength = $("#lastTbody").find("tr").find("td").length;
		
		lastTbodyTotal = lastTbodyTotal + "";
		
		//获取加逗号的合计值
		var result = getSplitTotal(lastTbodyTotal);
		
		$("#lastTbody").find("tr").find("td").eq(lastTbodyLength-2).text(result);
	}
	
	//获取加逗号分割的字符串
	function getSplitTotal(lastTbodyTotal){
		//小数点左边字符数字
		var splitLeft = "";
		//小数点右边字符数字
		var splitRight = "";
		if(lastTbodyTotal.indexOf(".") != -1){
			splitLeft = lastTbodyTotal.split(".")[0];
			splitRight = lastTbodyTotal.split(".")[1];
		}else {
			splitLeft = lastTbodyTotal;
			splitRight = "";
		}
		var reverseStr = "";
		var strTemp = "";
		//翻转字符
		for (var i = splitLeft.length-1; i>=0; i--){
			reverseStr += splitLeft.charAt(i);
		}
		//将翻转后的字符每隔3位拼接一个,号
		for (var i = 0; i < reverseStr.length; i++) {
            if (i * 3 + 3 > reverseStr.length) {
                strTemp += reverseStr.substring(i * 3, reverseStr.length);
                break;
            }
            strTemp += reverseStr.substring(i * 3, i * 3 + 3) + ",";
        }
        if (strTemp.endsWith(",")) {
            strTemp = strTemp.substring(0, strTemp.length - 1);
        }
        var reverseStr2 = "";
        //再次翻转字符
		for (var i = strTemp.length-1; i>=0; i--){
			reverseStr2 += strTemp.charAt(i);
		}
		return reverseStr2 + "." + splitRight;
	}
	
	//行添加
	function insertRows() {
		//当前选中行号
		var currentRowIndex = $("#rowIndex").val();
		var tbody = $("#tbody"+ currentRowIndex);
		var tbodyHtml = "<tbody><tr><td></td><td></td><td>20.5</td><td>2.5</td><td></td><td><a>行添加</a> | <a>行删除</a></td></tr></tbody>";
		var tr = $(tbodyHtml);
		tbody.after(tr);//拼接到选中行之后
		
		//加载选中行变色方法
		loadCheckColor();
		
		//计算合计值
		caculateTotal();
	}
	
	//行删除
	function delTableRow() {
	    //当前选中行号
		var currentRowIndex = $("#rowIndex").val();
		var tbody = $("#tbody"+ currentRowIndex);
		if(tbody.attr("customAttr") != null){
			alert("骚瑞,原有数据不能删除!!!");
			return;
		}
		tbody.remove();
		
		//移除行后,给行号设置为0
		$("#rowIndex").val(0);
		
		//加载选中行变色方法
		loadCheckColor();
		
		//计算合计值
		caculateTotal();
	}

	$("#additem").click(function () {
		var tableLength = $("#dictTbl").find("tr").length;
		var rowIndex = $("#rowIndex").val();
		if(rowIndex == 0 || rowIndex == tableLength-1){
			alert("请先选中一行。。。");
			return;
		}
		//console.log("当前选中行号 -> " + rowIndex);
		insertRows();
	})
	
	$("#deleteitem").click(function () {
		var tableLength = $("#dictTbl").find("tr").length;
		var rowIndex = $("#rowIndex").val();
		if(rowIndex == 0 || rowIndex == tableLength-1){
			alert("请先选中一行。。。");
			return;
		}
		delTableRow();
	})
	
	//重置
	$("#reset").click(function() {
		window.location.reload();
	})
	</script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值