layui table 表格动态表头(列)

从后端获取表头

function initTable() {
      $.ajax({
        url: "getList",
        method: "post",
        data: {...},
        success: function (res) {
          var cols = [
            {
              title: "No.",
              type: "numbers",
              fixed: "left",
              width: 40,
            },
          ];

          for (
            var i = 1, len = Object.keys(res.data[0]).length;
            i <= len;
            i++
          ) {//创建闭包环境,防止变量引用错误的问题
            (function (i) {
              var field = "key" + i;//后端传来的表头属性名key1,key2。。。
              var fieldObj = {
                field: field,
                title: res.data[0][field],
              };
              if (i > 1) {
                fieldObj.templet = function (d) {//自定义数据模版
                  return (
                    "
" + d[field] + "
" ); }; } cols.push(fieldObj); })(i); } res.data.shift(); //删除表头项,渲染表格 console.log(cols); layui.table({ elem: "#tableid", height: '500', cols: [cols], data: res.data, limit: res.data.length, }); }, error: function (resp) { layer.msg(resp.msg); }, });

你可能感兴趣的:(layui,闭包,javascript,前端)