【发布时间】:2019-02-20 08:50:43
【问题描述】:
我正在创建一份 HTML 报告,该报告必须根据日期选择显示订单详细信息。存储在 JSON 文件中的订单详情如下:
[
{
"storeName": "ireland",
"langCode": "en_IE",
"testCaseName": "Guest User Checkout - Credit Card",
"orderID": "4001820209",
"date": "12-02-2019 15:37:30.201",
"cartTotal": "19.98"
},
{
"storeName": "denmark",
"langCode": "en_DK",
"testCaseName": "Guest User Checkout - Credit Card",
"orderID": "6001825084",
"date": "12-02-2019 15:37:35.140",
"cartTotal": "338 DKK"
},
{
"storeName": "united_kingdom",
"langCode": "en_GB",
"testCaseName": "Guest User Checkout - Credit Card",
"orderID": "7002541022",
"date": "13-02-2019 15:45:08.038",
"cartTotal": "13.04"
}
]
HTML 报告将如下所示:
我想从这个 JSON 文件中唯一地获取所有订单日期。需要删除时间,如果相同的日期已经添加到 HTML 中,则跳过它。 HTML 上的预期日期顺序应为:
- 12-02-2019
- 13-02-2019
- 14-02-2019
如果用户点击该特定日期,则应显示该日期下的所有订单。
我在下面编写了 jQuery/javascript 函数来读取日期并添加到 html 中,但不知道如何使它们独一无二。
这将在页面加载时调用
function myFunction() {
createList();
$.getJSON('order-detail.json', function (item) {
item.forEach(function (data) {
addItemsInList(data);
});
});
}
创建无序列表
function createList() {
var ul = document.createElement('ul');
ul.setAttribute('id', 'order-dates');
var div = document.getElementById('orderDateContainer');
div.appendChild(ul);
}
在列表中添加日期
function addItemsInList(data){
var ul = document.getElementById('order-dates');
li = document.createElement('li');
li.setAttribute('class', 'ord-date');
ul.appendChild(li);
var a = document.createElement('a');
a.setAttribute('class', 'record-viewer');
a.setAttribute('href','#recordContent');
a.innerHTML=data.date;
a.setAttribute('onclick','tableCreater()');
li.appendChild(a);
}
任何帮助将不胜感激。
【问题讨论】:
-
独特是什么意思?
-
日期应该显示为
12-02-2019然后13-02-2019等等。时间应该被删除 -
啊..我看到了问题,您为每个元素分配了相同的 id,而 id 表示唯一。因此,将 id 分配为“order-dates”+ index,然后使用相同的方法为每个元素添加日期。
-
抱歉,我没看到。忽略。
-
添加一个有效的 sn-p 将帮助我们更轻松地解决您的问题。
标签: javascript jquery html date