使用arttemplate js模板引擎,直接用模板渲染,减少字符串拼接。


html:

<div class="box"></div>
                     <script id="t1" type="text/html"> {{each xiaolei as index}} //循环采用each as 循环,xiaolei 为循环体,在js里面有定义 。 <dd>
                                 <div class="picture">
                                     <img src="{{index.picture}}" />
                                 </div>
                                 <div class="dishes">
                                     <p class="dish_title">{{index.name}}</p>
                                 
                                     <div class="under_dishes">
                                         <div class="under_content">
                                             <p class="sales">月售{{index.monthSale}}</p>
                                             <p class="price"><span>{{index.price}}</span></p>
                                         </div>
                                         <p class="add"> <i class="icon iconfont icon2">&#xe60a;</i> &nbsp;<span class="nums"> 1 </span> &nbsp; <i class="icon iconfont icon1">&#xe63c;</i> </p>
                                     </div>
                                 </div> 
                             </dd>
 {{/each}}
                     </script>

js:

//ajax请求json数据
    function rightDataRender(smallClassfy){ var html=""; var xiaolei; //var classfyArray;
 $.ajax({ //ajax请求 url:"js/orderMeal.json", type:"get", dataType:"json", async:true, data:{}, error:function(){ console.log("对不起,请求出错!"); }, success:function(data){ //如果请求成功,根据条件定义xiaolei switch(smallClassfy){ case 0:xiaolei=data.recommend; break; case 1:xiaolei=data.specialtyCoffee; break; case 2:xiaolei=data.tea; break; } console.log(xiaolei); var xiaoleit1 =template("t1",{xiaolei:xiaolei}); //模板渲染 $(".box").html(xiaoleit1); } }) }  

基本的模板渲染就是这些,如果不用template模板,则用字符串拼接是这样的:

for(var i=0;i<xiaolei.length;i++){ html+='<dd>'
                         +    '<div class="picture">'
                         +        '<img src=" '+xiaolei[i].picture+' " />'
                         +    '</div>'
                         +    '<div class="dishes">'
                         +        '<p class="dish_title">'+xiaolei[i].name+'</p>'
                             
                         +        '<div class="under_dishes">'
                         +            '<div class="under_content">'
                         +                 '<p class="sales">月售'+xiaolei[i].monthSale+'</p>'
                         +                 '<p class="price">¥<span>'+xiaolei[i].price+'</span></p>'
                         +             '</div>'
                         +             '<p class="add"> <i class="icon iconfont icon2">&#xe60a;</i> &nbsp;<span class="nums"> 1 </span> &nbsp; <i class="icon iconfont icon1" onclick="addFun()"  >&#xe63c;</i> </p>'
                         +        '</div>'
                         +    '</div>'    
                         +'</dd>'; $(".box").html(html); }

其实两者效果差不多,不过稍有不同,知识在于总结哈!

不过模板渲染要引入 template-web.js 文件,可以在官网下载。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM