代码流程
1、订制表头:table_config
2、订制显示内容: table_config,data_list
3、加载框: 图片,position:fixed
4、-字符串格式化
5、 自定义规则 @
6、前端js整合:
7、自执行函数【让我们自定义函数名和其他函数不冲突】
8、 jquery扩展【在函数内部可以执行程序】
- js,函数作为作用域,首先当前找,上层找
整体代码
/*自执行函数*/
(function (jq) { var requestUrl = "";
/*字符串格式化*/
String.prototype.format = function (args) {
return this.replace(/\{(\w+)\}/g, function (s, i) {
return args[i];
});
}; /*
向后台获取数据,
*/
function init() {
$('#loading').removeClass('hide'); $.ajax({
url:requestUrl,
type: 'GET',
data: {},
dataType: 'JSON',
success:function (response) {
/* 处理表头 */
initTableHead(response.table_config);
initTableBody(response.data_list,response.table_config);
$('#loading').addClass('hide');
},
error:function () {
$('#loading').addClass('hide');
}
}) }
/*处理表头数据*/
function initTableHead(table_config) { $('#tHead tr').empty();
$.each(table_config,function (k,conf) { var th = document.createElement('th');
th.innerHTML = conf.title;
$('#tHead tr').append(th); });
}
/*处理表体数据*/
function initTableBody(data_list,table_config) {
$.each(data_list,function (k,row_dict) {
// {'hostname':'xx', 'sn':'xx', 'os_platform':'xxx'},
// {'hostname':'xx1', 'sn':'xx2', 'os_platform':'xxx2'},
var tr = document.createElement('tr');
$.each(table_config,function (kk,vv) {
var td = document.createElement('td');
// td.innerHTML = row_dict[vv.q]; //vv.q // None,hostname,sn,os_platform
var format_dict = {};
$.each(vv.text.kwargs,function (kkk,vvv) {
if(vvv[0] == "@"){
var name = vvv.substring(1,vvv.length);
format_dict[kkk] = row_dict[name];
}else{
format_dict[kkk] = vvv;
}
});
td.innerHTML = vv.text.tpl.format(format_dict);
console.log(format_dict)
$(tr).append(td);
}); $('#tBody').append(tr);
}) }
/*自定义在函数内部执行程序*/
jq.extend({
"nBList":function (url) {
requestUrl = url;
init();
}
}); })(jQuery);