我有以下代码:
$("#stats-list")
.append("<li>Elapsed: " + ajaxElapsed + "</li>\n" +
"<li>Display: " + tableElapsed + "</li>\n" +
"<li>Total: " + (ajaxElapsed + tableElapsed) + "</li>");
这最初是三个附加,我连接成一个。有没有什么我可以用jQuery来清理这个代码甚至更多。我想知道的是,如果jQuery有任何我可以使用的令牌的字符串格式。
答案 0 :(得分:2)
function format(formatString) {
var args = Array.prototype.slice.call(arguments,1);
return formatString.replace(/\{(\d+)\}/g, function(match, num) {
return args[Number(num)];
});
}
format("<li>Elapsed: {0}</li>\n<li>Display: {1}</li>\n<li>Total: {2}</li>",
ajaxElapsed, tableElapsed, ajaxElapsed + tableElapsed);
答案 1 :(得分:1)
afaik没有内置的,但是一个强大的模板子系统,请参阅jQuery Templates
为了完整性,我认为这可以做得更优雅:
var list = $('#stats-list');
$('<li />').text('Elapsed: ' + ajaxElapsed).appendTo(list);
$('<li />').text('Display: ' + tableElapsed).appendTo(list);
$('<li />').text('Total: ' + (ajaxElapsed + tableElapsed)).appendTo(list);
答案 2 :(得分:1)
如果你有很多项目,你可以做这样的事情,以避免遗漏+
和写li
这么多次。您可以在数组中添加任意数量的项目,它们将与li
相关联。
var list = '<li>' + [
'Elapsed: ' + ajaxElapsed,
'Display: ' + tableElapsed,
'Total: ' + ajaxElapsed + tableElapsed
].join('</li><li>') + '</li>';
$("#stats-list").append(list);
作为备注,我不会使用\n
。默认情况下,li
是一个块元素,所以你最好用css设置它。