我在页面上有一个事件列表。我的最终目标是使用JQuery / Javascript隐藏购买按钮(通过向其添加类)(如果事件已经过去)。每个事件都有3个数据属性(月,日,年)。我尝试使用以下方法循环遍历数组:
var matches = document.querySelectorAll(".event-event");
var i = 0;
for (i = 0; i < matches.length; i++) {
var event = matches[i].getElementsByClassName('date');
var eventDate = event.getAttribute('data-date');
}
但是它说“getAttribute”不是一个函数,我也尝试过“.attr”并且说同样的事情。
答案 0 :(得分:2)
var matches = document.querySelectorAll(".event-event");
for (var i = 0; i < matches.length; i++) {
var event = matches[i].getElementsByClassName('date');
if (event.length > 0) {
for (var j = 0; j < event.length; j++) {
var eventDate = event[i].getAttribute('data-date');
}
}
}
答案 1 :(得分:1)
getElementsByClassName
方法返回一个数组。
答案 2 :(得分:1)
试试这个:
var matches = document.querySelectorAll(".event-event");
for (var i = 0; i < matches.length; i++) {
var events = matches[i].getElementsByClassName('date');
for(var j = 0; j < events.length; j++) {
var eventDate = events[j].getAttribute('data-date');
}
}
events
是一个必须迭代的数组。