0

我有以下代码:

$("#stats-list")
    .append("<li>Elapsed: " + ajaxElapsed + "</li>\n" +
            "<li>Display: " + tableElapsed + "</li>\n" +
            "<li>Total:   " + (ajaxElapsed + tableElapsed) + "</li>");

这最初是我连接成一个的三个附加。我可以用 jQuery 做些什么来进一步清理这段代码。我想知道的是,如果 jQuery 有任何我可以使用的带有标记的字符串格式。

4

3 回答 3

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);
于 2012-09-14T06:20:09.263 回答
1

如果你有很多项目,你可以做这样的事情来避免丢失+和写li很多次。您可以在数组中添加任意数量的项目,它们将与lis 适当地连接。

var list = '<li>' + [
  'Elapsed: ' + ajaxElapsed,
  'Display: ' + tableElapsed,
  'Total: ' + ajaxElapsed + tableElapsed
].join('</li><li>') + '</li>';

$("#stats-list").append(list);

作为说明,我不会使用\n. li默认情况下是一个块元素,所以你最好用css来设计它。

于 2012-09-14T06:17:26.433 回答
1

afaik 没有内置的,但有一个强大的模板子系统,请参阅jQuery 模板

只是为了完整性,我认为这可以做得更优雅:

var list = $('#stats-list');
$('<li />').text('Elapsed: ' + ajaxElapsed).appendTo(list);
$('<li />').text('Display: ' + tableElapsed).appendTo(list);
$('<li />').text('Total: ' + (ajaxElapsed + tableElapsed)).appendTo(list);
于 2012-09-14T06:05:07.467 回答