ajax 动态渲染页面

动态创建方法一:通过创建和添加节点实现

 

$.ajax({  

    url:'data/zhuye-nav.json',  

    success:function(data){  

          //获取数据成功后动态添加到页面中  

          var aImg = data.result;  

          for(i=0;i<aImg.length;i++){  

                var Li='<li><a href="#/list"><img src='+aImg[i].img+'/></a></li>'  

                $('.banner-c ul').append(Li);  

          }  

     }  

})  

 

 


 

动态创建方法二:字符串拼接

 

buildList();  view pla

function buildList(){  

       $.ajax({  

            url : 'data/zhuye-list.json',  

            success : function(data){

view plain co//判断,如果是字符串就先转成json再使用view placop

                 if(typeof(data) ==="string"){  

                        data = JSON.parse(data);  

                 }  

                      

                 var html = [ ];  

                 for(var i = 0 , len = data.result.length ; i < len ; i++){  

                        var item = data.result[i];  

                        html.push(renderItem(item));  

                 }  

                 $('#goods ul').html(html.join(''));   

             }  

       });  

 }  

这里定义要动态创建的代码模块,换行用\  ,这样写结构清晰,便于后期的维护和修改。

 view plain copy 

需要注意的是:下面的参数data实际就是上面的item,所以要直接写data.name,如果觉得别扭那可以把下面的形参给改一个就ok了。

view plaincopy 

function renderItem(data){  

      var str='<li>\  

               <span>'+data.name+'</span>\  

               <span>'+data.price+'</span>\  

          </li>';  

     return str;  

}

 

 


 

动态创建方法三:使用baidutemplate实现(推荐)

 

他其实是个JS模板引擎,去官网下载这个js文件,灰常灰常轻量级。

view plain copy 

1、在html页面中需要写如下的代码

 

也就是我们要动态创建的代码块,在这里我们把他当做是一个模板来使用,注意这里的写法:

一个是变量,另外一个是所有的js代码块都要用分隔符包起来,

变量分隔符格式:<%= 这里是变量 %>

js代码分隔符的格式:<%  这里是js代码  %>  

 view plain copy 

<section id="main">  

     <ul>  

           <!--数据通过动态添加-->  

           <!--使用下面创建的模板-->  

    </ul>  

</section>  

 

<!--在这里创建一个模板块-->  

<script id="list_tpl" type="text/html">  

        <%for(var i=0,len = result.length;i<len;i++){%>  

            <li>  

               <a href="#/detail"><img src="<%= result[i].img %>"/></a>  

                <div>  

                    <p><%= result[i].name %></p>  

                    <span><%= result[i].price %></span>  

                </div>  

            </li>  

         <%}%>  

</script>  

 view plain copy 

2、js文件中的代码这样写  

view plain copy 

buildListBT();  

          

function buildListBT(){  

          $.ajax({  

                url:'data/liebiao-list.json',  

                success:function(data){  

                    var html = baidu.template('list_tpl',data);  

                    $('#main ul').html(html);  

                }  

         })

  }  

 http://mp.weixin.qq.com/s?srcid=0401G3C3Mc4f72fS8e8S2TXP&scene=23&mid=2247483697&sn=2da27918286dc4f82987619988da5282&idx=1&__biz=MzIwMzI2NTAyOQ%3D%3D&chksm=96d3445ba1a4cd4d2aac776257c1df55c3cc0ed2c959f21be6d78c9ca6cd661620199a2aaacc&mpshare=1#rd

posted @ 2017-04-01 14:56  沐少白  阅读(650)  评论(0)    收藏  举报