所以我从一个看起来像[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
的AJAX请求中获得了多个对象。
所以我
for (var prop in dateArray) {
if (dateArray[prop].date === sdate) {
}
}
sdate
是一个包含日期列表的变量。我从jQuery UI
和dateArray
获得的是我的所有对象。
我的对象如下:
0: Object
available : true
date : "01/01/2017"
stock_qty : 0
time: "07:30pm"
title: "The seeing"
所以我可以迭代它们,然后检查var A
是否与var B
中的日期匹配。我正在苦苦思索如何将信息附加到与DOM上的元素匹配的对象中。
在我的循环中,当我找到匹配时,我正试图通过DOM
html
将对象中的所有信息写入attr
,但我正在努力。但是我不确定我是如何引用匹配的,比如在我的循环中它与另一个日期的日期相匹配时,我怎样才能从该匹配中拉出所有对象?
我知道这是一个非常模糊的问题,对不起!我知道自己要做的是什么,我只是无法弄清楚我是如何用JavaScript做的。
提前致谢!
答案 0 :(得分:1)
假设sdate
是一组日期......
您可以循环检查每个object.date
是否在此数组中。
我使用了jQuery inArray()
for(i=0; i<dateArray.length; i++){
if($.inArray(dateArray[i].date,sdate)){
// If the date defined in an object is found in the «list» sdate...
// Do something.
}
}
修改强>
如果sdate
是数组或以逗号分隔的字符串,那么另一种方法是:
在这里,我使用了JavaScript indexOf()方法。
for(i=0; i<dateArray.length; i++){
if(sdate.indexOf(dateArray[i].date)!=-1){
// If the "indexOf" a defined object.date is found (not ==-1) in the «list» sdate...
// Do something.
}
}
答案 1 :(得分:0)
让我们在你的DOM中想象一下,你想要显示的每个对象都有一个元素。
然后它可能是这样的:
for (var prop in dateArray) {
if (dateArray[prop].date === sdate) {
$(".date-holder").append(dateArray[prop].date);
$(".stock-holder").append(dateArray[prop].stock_qty);
//...
//and so on
}
}
您要将每个对象的值插入空元素(例如<div class="date-holder"></div>
)。
答案 2 :(得分:0)
如果sdate
是日期列表,您可以使用lo-dash d
或运行for循环检查该列表中的特定日期(_.includes
):
所以这必须嵌套在另一个for循环中:
dateArray.forEach(
function(dateObjFromServer){
for (var i=0; i < sdate.length; i++){
if (dateObjFromServer.date === sdate[i]){
//do something...
//for example: to set an attribute:
document.getElementById('date-holder').setAttribute('data-date', dateObjFromServer);
}
}
});