我创建了一个插件生成网格,数据是json字符串。
var objGrid = {
"tbody": [
{ "stt": "1", "name": "Le Nguyen Nhat Bang", "description": "Vinh Long" },
{ "stt": "2", "name": "Dang Truong Chinh", "description": "Binh Dinh" },
{ "stt": "3", "name": "Cu Ngoc Sang", "description": "Dak Lak" }
]
}
(function ($) {
$.fn.generateGrid = function (data) {
this.append("<table>");
var tbody = $('<tbody>');
$("table", this).append(tbody);
if (data != null && data.tbody != null) {
for (var j = 0; j < data.tbody.length; j++) {
$(tbody).append('<tr>').children('tr:last')
.append($("<td>").append(data.tbody[j]....))
.append($("<td>").append(data.tbody[j]....))
.append($("<td>").append(data.tbody[j]....));
}
}
}
} (jQuery));
$(document).ready(function () {
$("#grid").generateGrid(objGrid);
});
我想生成动态表跟随json数据。现在它只有三个字段,另一天我需要4或5个字段但不能更改插件中的代码。 感谢
答案 0 :(得分:1)
试试这个。使用每个方法循环json的每个属性以附加td。那么有多少属性会增加那么多td。
(function ($) {
$.fn.generateGrid = function (gridTitle, data) {
this.append("<table>");
var tbody = $('<tbody>');
$("table", this).append(tbody);
if (data != null && data.tbody != null) {
for (var j = 0; j < data.tbody.length; j++) {
var trContent= data.tbody[j],
trElm=$('<tr />')
$.each(trContent,function(k,v){
trElm.append('<td>'+v+'</td>');
});
$(tbody).append(trElm);
}
}
}
} (jQuery));