简单的字符串模板
每次在写脚本的时候拼装字符串是个头痛的事情,主要是双引号,单引号,还有一堆变量,一不小心就搞错了,而且可读性非常差。这里推荐一个小工具:http://www.html-js.com/my-js/version0.0.1/tool/html2string.html 这个工具可以将复杂的字符串转换成js的字符串。至少解决的了手动拼装的的问题,但是变量的话还是非常难受。比如一个列表:
- 《愚人码头》 – 熊天平
- 《富士山下》 - 陈奕迅
- 《假如》 – 信乐团
- …
通常如果是异步的请求,后端一般返回回来的是一个json:
 | 1 | [ | 
| 2 | {"song":"愚人码头","songurl":"http://www.css88.com/mp3/1.html","songer":"熊天平","songerurl":"http://www.css88.com/songer/1.html"}, | 
| 3 | {"song":"富士山下","songurl":"http://www.css88.com/mp3/2.html","songer":"陈奕迅","songerurl":"http://www.css88.com/songer/2.html"}, | 
| 4 | {"song":"假如","songurl":"http://www.css88.com/mp3/3.html","songer":"信乐团","songerurl":"http://www.css88.com/songer/3.html"} | 
| 5 | ] | 
通常情况下会这样拼装:
| 01 | varlistData=[ | 
| 02 | {"song":"愚人码头","songurl":"http://www.css88.com/mp3/1.html","songer":"熊天平","songerurl":"http://www.css88.com/songer/1.html"}, | 
| 03 | {"song":"富士山下","songurl":"http://www.css88.com/mp3/2.html","songer":"陈奕迅","songerurl":"http://www.css88.com/songer/2.html"}, | 
| 04 | {"song":"假如","songurl":"http://www.css88.com/mp3/3.html","songer":"信乐团","songerurl":"http://www.css88.com/songer/3.html"} | 
| 05 | ]; | 
| 06 |     varlistHtml="<ul>" | 
| 07 |     for(vari=0,lengths = listData.length;i < lengths;i++){ | 
| 08 |         listHtml+='<li class="item">《'+listData[i].song+'》 - <span>'+listData[i].songer+'</span>' | 
| 09 |     } | 
| 10 |     listHtml+="</ul>" | 
| 11 |     console.log(listHtml); | 
 如果给歌曲歌手加链接更加复杂。群里有人可以引入模板概念,这样至少结构上可以清晰,可读性会增强.
 写了一段脚本:
| 1 | String.prototype.formatTemp = function(temp){ | 
| 2 |     varstr=this; | 
| 3 |     for(vark intemp){ | 
| 4 |         varregObj = newRegExp("{"+k+"}","g"); | 
| 5 |         str = str.replace(regObj,temp[k]); | 
| 6 |     } | 
| 7 |     returnstr; | 
| 8 | }; | 
这样可以将上面的脚本改写成:
| 01 | varlistData=[ | 
| 02 | {"song":"愚人码头","songurl":"http://www.css88.com/mp3/1.html","songer":"熊天平","songerurl":"http://www.css88.com/songer/1.html"}, | 
| 03 | {"song":"富士山下","songurl":"http://www.css88.com/mp3/2.html","songer":"陈奕迅","songerurl":"http://www.css88.com/songer/2.html"}, | 
| 04 | {"song":"假如","songurl":"http://www.css88.com/mp3/3.html","songer":"信乐团","songerurl":"http://www.css88.com/songer/3.html"} | 
| 05 | ]; | 
| 06 |     varlistHtml="<ul>", | 
| 07 |         temp='<li class="item">《{song}》 - <span>{songer}</span></li>' | 
| 08 |     for(vari=0,lengths = listData.length;i < lengths;i++){ | 
| 09 |         listHtml+=temp.formatTemp(listData[i]); | 
| 10 |     } | 
| 11 |     listHtml+="</ul>" | 
| 12 |     console.log(listHtml); | 
当然可以用数组拼装:
| 01 | varlistData=[ | 
| 02 | {"song":"愚人码头","songurl":"http://www.css88.com/mp3/1.html","songer":"熊天平","songerurl":"http://www.css88.com/songer/1.html"}, | 
| 03 | {"song":"富士山下","songurl":"http://www.css88.com/mp3/2.html","songer":"陈奕迅","songerurl":"http://www.css88.com/songer/2.html"}, | 
| 04 | {"song":"假如","songurl":"http://www.css88.com/mp3/3.html","songer":"信乐团","songerurl":"http://www.css88.com/songer/3.html"} | 
| 05 | ]; | 
| 06 |     varlistHtml="</ul><ul>", | 
| 07 |         temp='<li class="item">《{song}》 - <span>{songer}</span></li>', | 
| 08 |         listArr=[]; | 
| 09 |     for(vari=0,lengths = listData.length;i < lengths;i++){ | 
| 10 |         listArr.push(temp.formatTemp(listData[i])); | 
| 11 |     } | 
| 12 |     listHtml+=listArr.join(""); | 
| 13 |     console.log(listHtml); | 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号