1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 1、JS格式化功能 <script> /* 1. 调用对象方法时,通过调用类的prototype中的方法,可以扩展 2. 正则表达式 /\w+/g 3. 字符串replace ''.replace('alex','sb'); ''.replace(/\w+/,'sb'); ''.replace(/\w+/g,'sb'); ''.replace(/(\w+)/g,function(k,kk){return 11;}); */ String.prototype.Format = function (arg){ /* this,当前字符串 "i am {name1}, age is {age9}" arg,Format方法传入的参数 {name:'alex',age:18} return,格式化之后获取的新内容 i am alex, age is 18 */ var temp = this .replace(/\{(\w+)\}/g, function (k,kk){ return arg[kk]; }); return temp; }; |
2、利用以上格式化功能和递归实现评论树
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function commentTree(commentList){ var comment_str = "<div class='comment'>" ; $.each(commentList, function (k,row){ // var temp = "<div class='content'>"+ row.content +"</div>"; var temp = "<div class='content'>{content}</div>" .Format({content:row.content}); comment_str += temp; if (row.child.length>0){ comment_str += commentTree(row.child); } }); comment_str += '</div>' ; return comment_str; } |