如何从一个json文件将一个对象的内容输出到一个html页面,而将另一个对象的内容输出到另一个html页面?

时间:2019-08-19 09:14:57

标签: javascript

goods.json文件中有两个男性产品(衬衫)和两个女性产品(连衣裙)。 打开man.html页面时,必须显示男人的衬衫,打开woman.html页面时,必须显示衣服。如何实现?(不使用jquery)要在我的代码中添加什么?

eshop.js:

df.groupby(df.index.strftime('%Y-%m')).tail(1)

goods.json:

document.addEventListener('DOMContentLoaded', function (e) {               
  loadGoods();  
});
function loadGoods() {

    $.getJSON('goods.json', function (data) {

        var out = '';
        for (var key in data){
            out+='<div class="single-goods">';
            out+='<h3>'+data[key]['name']+'</h3>';
            out+='<img src="'+data[key].image+'">';
            out+='<p>Price: '+data[key]['cost']+'</p>';
            out+='<button class="add-to-cart" data-art="'+key+'">Buy </button>';
            out+='</div>';
        }
         document.getElementById('goods').innerHTML = out; 
         document.querySelectorAll('button.add-to-cart').forEach(function(but) {
           but.addEventListener("click",addToCart);
})
    });
}

man.html:

{
  "Shirt №1" : {
    "name" : " Shirt №1",
    "cost" : 1000,
    "country" : "argentina",
    "image" : "images/1.jpg",
    "brand": "M"
  },
 "Shirt №2" : {
    "name" : " Shirt №2",
    "cost" : 1000,
    "country" : "argentina",
    "image" : "images/1.jpg",
    "brand": "M"
  },
 "Dress №1" : {
    "name" : "Dress №1",
    "cost" : 1000,
    "country" : "brazil",
    "image" : "images/a.jpg",
     "brand": "L"
  },
 "Dress №2" : {
    "name" : "Dress №2",
    "cost" : 1000,
    "country" : "brazil",
    "image" : "images/a.jpg",
     "brand": "L"
  }
}

woman.html:

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
</head>
<body>
         <a href="index.html"> to the main page</a>
         <div id="mini-cart"></div>
         <div id="goods"></div>
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/eshop.js"></script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

如下修改您的eshop.js,

document.addEventListener('DOMContentLoaded', function (e) {               
  loadGoods();  
});
function loadGoods() {

$.getJSON('goods.json', function (data) {

    var url = (window.location.href);
    var pageName = url.substring((url.lastIndexOf('/') + 1) , url.indexOf('.'));

    var out = '';
    for (var key in data){
        if(pageName != data[key]['gender']){
            continue;
        }
        out+='<div class="single-goods">';
        out+='<h3>'+data[key]['name']+'</h3>';
        out+='<img src="'+data[key].image+'">';
        out+='<p>Price: '+data[key]['cost']+'</p>';
        out+='<button class="add-to-cart" data-art="'+key+'">Buy </button>';
        out+='</div>';
    }
    document.getElementById('goods').innerHTML = out; 
    document.querySelectorAll('button.add-to-cart').forEach(function(but) {
        but.addEventListener("click",addToCart);
    })
});
}

并将性别属性添加到您的goods.json

{
  "Shirt №1" : {
  "gender" : "man",
  "name" : " Shirt №1",
  "cost" : 1000,
  "country" : "argentina",
  "image" : "images/1.jpg",
  "brand": "M"
},
"Shirt №2" : {
  "gender" : "man",
  "name" : " Shirt №2",
  "cost" : 1000,
  "country" : "argentina",
  "image" : "images/1.jpg",
  "brand": "M"
},
"Dress №1" : {
  "gender" : "woman",
  "name" : "Dress №1",
  "cost" : 1000,
  "country" : "brazil",
  "image" : "images/a.jpg",
   "brand": "L"
},
"Dress №2" : {
  "gender" : "woman",
  "name" : "Dress №2",
  "cost" : 1000,
  "country" : "brazil",
  "image" : "images/a.jpg",
   "brand": "L"
}
}