我用json填充div,但我不认为我这样做是最好的方式。看起来像很多代码和一些它似乎可以共享。
//data for DOM
$.getJSON('json/device.json', function (data) {
var items = [];
$.each(data[0].attributes, function (key, val) {
items.push('<li id="' + key + '">' + ' ' + val + '</li>');
});
$('<ol/>', {
'class': 'raw-list',
html: items.join('')
}).hide().fadeIn().appendTo('.json');
});
$.getJSON('json/device.json', function (data) {
var items = [];
$.each(data[0].status, function (key, val) {
items.push(val);
});
$('<span/>', {
'class': 'sort-label error',
html: items.join('')
}).hide().fadeIn().appendTo('.status-input .sort-label');
});
$.getJSON('json/device.json', function (data) {
var items = [];
$.each(data[0].location, function (key, val) {
items.push(val);
});
$('<span/>', {
'class': 'sort-label',
html: items.join('')
}).hide().fadeIn().appendTo('.location-input .sort-label');
});
$.getJSON('json/device.json', function (data) {
var items = [];
$.each(data[0].type, function (key, val) {
items.push(val);
});
$('<span/>', {
'class': 'sort-label',
html: items.join('')
}).hide().fadeIn().appendTo('.type-input .sort-label');
});
$.getJSON('json/device.json', function (data) {
var items = [];
$.each(data[0].brand, function (key, val) {
items.push(val);
});
$('<span/>', {
'class': 'sort-label',
html: items.join('')
}).hide().fadeIn().appendTo('.brand-input .sort-label');
});
答案 0 :(得分:3)
如果您每次都检索相同的数据,则不需要多次$.getJSON
次调用。
例如:
$.getJSON('json/device.json', function(data) {
// First set of display logic
var items = [];
$.each(data[0].attributes, function (key, val) {
items.push('<li id="' + key + '">' + ' ' + val + '</li>');
});
$('<ol/>', {
'class': 'raw-list',
html: items.join('')
})
.hide().fadeIn().appendTo('.json');
// Second set of display logic
var items = [];
$.each(data[0].status, function (key, val) {
items.push(val);
});
$('<span/>', {
'class': 'sort-label error',
html: items.join('')
})
.hide().fadeIn().appendTo('.status-input .sort-label');
});
由于您为大多数数据集的显示逻辑使用了类似的代码块,因此可以将其包装到函数中:
function displaySortLabel(items, parentClass) {
$('<span/>', {
'class': 'sort-label',
html: items.join('')
}).hide().fadeIn().appendTo('.' + parentClass +' .sort-label');
}
然后通过以下方式调用它:
displaySortLabel(items, "location-input");