jQuery+Ajax+artTemplate請求本地json數據並進行列表顯示

網上學習了artTemplate前端模板,在此通過一個小示例記錄一下相關知識點。示例有兩個頁面,第一個頁面爲列表頁面,第二個頁面爲商品詳情頁面,瀏覽器打開列表頁面時,js會加載本地data.json文件,然後通過artTemplate模板渲染內容,顯示商品列表。當點擊商品的id時,跳轉至詳情頁面,顯示商品的部分詳情。詳情頁是通過jquery來操作div元素以顯示商品詳情內容。

下面是頁面及json文件

data.json文件

{
  "books": [
    {
      "id": 1,
      "imgUrl": "images/ly.jpg",
      "price": "45.00",
      "title": "論語",
      "publish": "人民文學出版社",
      "num": "303",
      "desc": "內容1"
    },
    {
      "id": 2,
      "imgUrl": "images/zy.jpg",
      "price": "45.00",
      "title": "中庸",
      "publish": "人民教育出版社",
      "num": "403",
      "desc": "內容2"
    },
    {
      "id": 3,
      "imgUrl": "images/dx.png",
      "price": "45.00",
      "title": "大學",
      "publish": "機械工業出版社",
      "num": "503",
      "desc": "內容3"
    }
  ]
}

index.html文件

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #content td{
                padding: 20px;
            }
        </style>
        <script src="../js/jquery.min.js"></script>
        <script src="../js/template-web.js"></script>
        <script id="list" type="text/html">
            <table style="text-align: center;" cellspacing="0" border="1px solid blue">
                {{each books as value}}
                    <tr>
                        <td><a href="goodDetail.html?booksId={{value.id}}" target="_blank">{{value.id}}</a></td>
                        <td>{{value.imgUrl}}</td>
                        <td>{{value.price}}</td>
                        <td>{{value.title}}</td>
                        <td>{{value.publish}}</td>
                        <td>{{value.num}}</td>
                        <td>{{value.desc}}</td>
                    </tr>
                {{/each}}
            </table>
        </script>
        <script>
            $(function () {
               $.ajax({
                   type:"get",
                   url:"data.json",
                   dataType:"json",
                   success:function (res) {
                       var html1 = template('list', res);
                       document.getElementById("content").innerHTML = html1;
                   }
               }
               );
            });
        </script>
    </head>
    <body>
        <div id="content"></div>
    </body>
</html>

goodDetail.html文件

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #content td{
                padding: 20px;
            }
        </style>
        <script src="../js/jquery.min.js"></script>
        <script src="../js/template-web.js"></script>
        <script id="list" type="text/html">
            <table style="text-align: center;" cellspacing="0" border="1px solid blue">
                {{each books as value}}
                    <tr>
                        <td><a href="goodDetail.html?booksId={{value.id}}" target="_blank">{{value.id}}</a></td>
                        <td>{{value.imgUrl}}</td>
                        <td>{{value.price}}</td>
                        <td>{{value.title}}</td>
                        <td>{{value.publish}}</td>
                        <td>{{value.num}}</td>
                        <td>{{value.desc}}</td>
                    </tr>
                {{/each}}
            </table>
        </script>
        <script>
            $(function () {
               $.ajax({
                   type:"get",
                   url:"data.json",
                   dataType:"json",
                   success:function (res) {
                       var html1 = template('list', res);
                       document.getElementById("content").innerHTML = html1;
                   }
               }
               );
            });
        </script>
    </head>
    <body>
        <div id="content"></div>
    </body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章