jQuery动态处理table

本文介绍如何使用HTML、CSS和jQuery动态生成表格,并实现数据对比功能,通过检查列值是否相同来改变背景颜色。

工作中有时候会写一些小工具,web端主要用html、css、jQuery来写的。因为vue呀nodejs呀不会~下面就记录下我用到的一些操作。首先描述下后端返回的数据格式{keys1:{key1:value1-1,key2:value1-2...},keys2:{key1:value2-1,key2:value2-2....}},其中key值是相同的,所要实现的效果类似于这样,然后对比某一列的值是否相等,如果不相等,更改某一列的背景颜色(表里只改了下文字颜色~)。

数据key1key2key3
keys1value1value1-2value1-3
keys2value2-1value2-2value2-3

1.动态添加thead

由于ajax请求后端,后端返回的是json对象,将json对象的key作为thead添加到table中

            $('#tHead').append('<tr><th>'+'数据'+'</tr></th>');
        	//增加表头,由于key值是一样的,只需增加一次就可以
            for(var o in data){
            	var res=data[o];
            	for(var info in res){
            		//console.log(res[info]);
            		$col = $('<th>' +info+ '</th>');
            		$('#tHead tr:eq(0)').append($col);
            	}
            	break;
            }

2.动态添加tbody

其实和添加thead类似,直接看代码

            var i=0;
            for(var o in data){	
            	var res=data[o];
            	$('#tBody').append('<tr><td>'+o+'</tr></td>');
            	for(var info in res){
            		//console.log(res[info]);
            		$col = $('<td>' +res[info]+ '</td>');
            		$('#tBody tr:eq('+i+')').append($col);
            	}
            	i++;
            }

3.表格生成完之后对比所有列的值,如果值不相等更改当前列的背景颜色

    var columnNum=$("#tBody td").size();
	for(i=1;i<columnNum;i++){
		//获取每一列值
		var tdList=$('#tBody tr').find('td:eq('+i+')');
		//遍历列里面所有值
		for(j=0;j<tdList.length;j++){
			if(tdList[j].isEqualNode(tdList[j+1])){
				break;
			}else{
				tdList.css("background-color", "red");
			}
		}
	}

以上就完成了对数据页面的处理,权做记录学习,有更好的方法也请大家多多指导。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值