1

我正在尝试为 json 返回的用户数组生成 html。我想按照以下方式进行操作,但我觉得这不是非常有效的方式来完成这项工作。请查看以下代码并告诉我是否应该使用一些模板代码或者这种情况有什么标准?

                  success: function(e){
       console.log(e);
       console.log(e.d[0].UserName);

       var position2= $("#searchtextbox").position();
       $('<div/>',
        {
          id:'generatedsearchdiv', 
          css:{
              position:'absolute',
              left:position2.left, 
              top:position2.top+20
              }

         }).appendTo('#searchArea');

       for (var i=0; i<=e.d.length; i++)
       {
       $('<div/>', 
            {

            html:"<span>"+e.d[i].UserName+"<span>"
            }).appendTo('#generatedsearchdiv');

       }

       } 
4

3 回答 3

0

您可以为此使用 Jquery 模板。

于 2013-04-15T16:18:10.500 回答
0

这种方法对于 HTML 的一小部分是“好的”,比如<span>{data}</span>. 但是,如果您有更多的东西,那么使用模板解决方案确实是最好的可维护性。查看此答案以获取选项。

于 2013-04-15T16:21:10.613 回答
0

我还没有被当前的模板解决方案所吸引。如果你不是,如果你把这段代码内联,你可以获得一个快速的字符串格式化程序:

String.prototype.format = function() {
    var pattern = /\{\d+\}/g;
    var args = arguments;
    return this.replace(pattern, function(capture) {return args[capture.match(/\d+/)]; });
}

您可以像这样定义格式化字符串:

var formatHTML = '<span>{0}</span>';

然后像这样使用它:

$('#generatedsearchdiv').append(formatHTML.format(e.d[i].UserName));
于 2013-04-15T18:14:51.230 回答