【JavaScript】JS写法随笔(二) JS动态生成表格

主要思路:通过Ajax请求后端接口并拿到结果list之后,然后通过DOM获取tbody并向tbody中添加行、单元格。

$("#calculate").click(function () {
    var amount = $("#amount").val();
    var apr = $("#apr").val();
    var installments = $("#installments").val();
    var startDate = $("#startDate").val();
    var planInfoList = [];
    $.ajax({
        url: '/common/repayment_calculate',
        type: 'POST', // 调用post方法类型
        data: JSON.stringify({'amount': amount, 'apr': apr, 'installments': installments, 'startDate': startDate}), // 传参
        async: false, // false-异步
        beforeSend: function () {
            $("#loading").attr({"hidden": false});
        }, // beforeSend 调用前页面展示内容
        success: function (result) {
            // console.log(result);
            planInfoList = result;
            //先从DOM中获取表格元素对象
            var tbody = document.querySelector('tbody');
            //清空表格
            tbody.innerHTML = '';
            //通过返回试算数据,动态生成表格
            //循环获取每一行数据
            for (var i = 0; i < planInfoList.length; i++) {
                //通过DOM创建行元素并添加到tbody中
                var tr = document.createElement('tr');
                tbody.appendChild(tr);
                //通过DOM创建单元格元素并添加到tr中,并且通过innerHTML属性给单元格赋值
                var td_installment = document.createElement('td');
                tr.appendChild(td_installment);
                td_installment.innerHTML = planInfoList[i]['installmentNumber'];
                var td_prin = document.createElement('td');
                tr.appendChild(td_prin);
                td_prin.innerHTML = planInfoList[i]['chargeItemInfos'][0]['chargeAmount'];
                var td_int = document.createElement('td');
                tr.appendChild(td_int);
                td_int.innerHTML = planInfoList[i]['chargeItemInfos'][1]['chargeAmount'];
                var td_start_date = document.createElement('td');
                tr.appendChild(td_start_date);
                td_start_date.innerHTML = planInfoList[i]['installmentInterestStartDate'];
                var td_due_date = document.createElement('td');
                tr.appendChild(td_due_date);
                td_due_date.innerHTML = planInfoList[i]['dueDate'];

            }
        }  // success 异步调用成功后在页面填充内容
    });
});
$('#calculateClean').click(function () {
    var tbody = document.querySelector('tbody');
    //清空表格
    tbody.innerHTML = '';
});

 

posted @ 2021-09-06 17:29  偷月  阅读(269)  评论(0编辑  收藏  举报