js动态生成表格

   本文功能是利用ajax技术从后台获取数据,前端转化为json数据,根据数据动态生成表格。

<script type="text/javascript">
$(document).ready(function(){
//获取用户id和用户姓名
var userId=document.getElementById("userId").value;
var userName=document.getElementById("userName").value;

var mylianqin = document.getElementById("mylianqin");

    //已处理样式
    var handled="<div style='border:1px solid #ffab17;color:#ffab17;font-size:0.8em;display:inline-block;'>已处理</div>";
    //未处理样式
    var not_handled="<div style='border:1px solid #e0e0e0;color:#e0e0e0;font-size:0.8em;display:inline-block;'>未处理</div>";
   
$.ajax({
type:"get",
dataType:"text",
url:"../MyLianqinAction?userId="+encodeURIComponent(userId)+"&userName="+encodeURIComponent(userName),

async: false, //修改Ajax请求为同步
  success:function(data){ 
  // 由JSON字符串转换为JSON对象
     var caseJSON=eval("("+data+")");
  var len=caseJSON.caseInfo.length;
 
  //动态添加行
       for(var i=0;i<len;i++){
        var row = document.createElement("tr");
    var col = document.createElement("td");
    col.className="lianqin-td1";
    col.innerHTML=caseJSON.caseInfo[i].casedesc+"<input type='hidden' id='caseid_"+caseJSON.caseInfo[i].id+"' value='"+caseJSON.caseInfo[i].caseid+"'>";
    //列添加到行
    row.appendChild(col);
    //添加箭头
    var col2 = document.createElement("td");   
    col2.setAttribute("id",caseJSON.caseInfo[i].id);
    col2.οnclick=function(){showDetail(this.id);};   
    col2.rowSpan="2";
    col2.className="lianqin-img";   
       col2.innerHTML="<img alt='' src='../img/detail.png' width='12' style='cursor:pointer;'>";
      //列添加到行
       row.appendChild(col2);
       //行添加到table
    mylianqin.appendChild(row);
    //添加第二行
    var row2 = document.createElement("tr");
    var col3 = document.createElement("td");
    col3.className="lianqin-td2";
    //col3.innerHTML = caseJSON.caseInfo[i].reportdate+"&nbsp;&nbsp;&nbsp;&nbsp;"+not_handled;
    if(caseJSON.caseInfo[i].casestatus=="已结案"){
    col3.innerHTML = caseJSON.caseInfo[i].reportdate+"&nbsp;&nbsp;&nbsp;&nbsp;"+handled;
    }
    else{
    col3.innerHTML = caseJSON.caseInfo[i].reportdate+"&nbsp;&nbsp;&nbsp;&nbsp;"+not_handled;
    }
    //列添加到行
    row2.appendChild(col3);
    //行添加到table
    mylianqin.appendChild(row2);
       }  
 
  },
  error: function (XMLHttpRequest, textStatus, errorThrown) { 
           alert(errorThrown); 
       } 
});
});
</script>

效果如下:


JavaScript动态生成表格可以通过DOM操作来实现。以下是一些基本的步骤: 1. 首先创建一个table元素,并设置其属性(如id、border等)。 2. 创建thead元素和tbody元素,并添加到table中。 3. 创建tr元素作为thead中的一行,并创建th元素作为每列的标题。将th元素添加到tr中,再将tr添加到thead中。 4. 使用for循环或其他方法遍历数据,创建每个数据行,创建td元素用于每列数据。将td元素添加到tr中,再将tr添加到tbody中。 5. 将tbody添加到table中。 6. 最后将table元素添加到DOM中。 以下是一个简单的示例代码: ``` // 创建table元素 var table = document.createElement("table"); table.setAttribute("id", "myTable"); table.setAttribute("border", "1"); // 创建thead元素和tbody元素 var thead = document.createElement("thead"); var tbody = document.createElement("tbody"); // 创建thead中的一行 var tr = document.createElement("tr"); var th1 = document.createElement("th"); var th2 = document.createElement("th"); var th3 = document.createElement("th"); th1.innerHTML = "姓名"; th2.innerHTML = "年龄"; th3.innerHTML = "性别"; tr.appendChild(th1); tr.appendChild(th2); tr.appendChild(th3); thead.appendChild(tr); // 遍历数据,创建每个数据行 for (var i = 0; i < data.length; i++) { var tr = document.createElement("tr"); var td1 = document.createElement("td"); var td2 = document.createElement("td"); var td3 = document.createElement("td"); td1.innerHTML = data[i].name; td2.innerHTML = data[i].age; td3.innerHTML = data[i].sex; tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); tbody.appendChild(tr); } // 将thead和tbody添加到table中 table.appendChild(thead); table.appendChild(tbody); // 将table添加到DOM中 document.body.appendChild(table); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值