【发布时间】:2019-04-10 12:33:44
【问题描述】:
我有一个针对节点列表运行的 for 循环。我正在尝试遍历节点列表并触发点击,然后我设置一个间隔来等待弹出窗口,然后我想在弹出窗口中触发点击。
我的问题是我需要每次迭代都等到加载弹出窗口并且在进入下一个迭代之前单击弹出窗口中的项目。希望这是有道理的。
这是我的代码。
let checkSteats = () => {
const seats = document.querySelectorAll(seatSectionSelector);
if (seats.length < maxSeatCount) {
maxSeatCount = seats.length;
}
if (seats.length > 0) {
[].forEach.call(seats, (seat, index) => {
/**
* WE NEED TO CLICK WAIT FOR A CHANGE IN THE RESPONSE OR POP UP BEFORE WE GO INTO THE NEXT ITERATION
*/
console.log(seat)
if ((index+1) <= maxSeatCount) {
seat.dispatchEvent(
new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true,
buttons: 1
})
);
const popupInterval = setInterval(() => {
const popupBtn = document.querySelector('.ticket-option__btn');
if (popupBtn) {
popupBtn.click();
clearInterval(popupInterval);
}
}, 100)
}
});
}
};
【问题讨论】:
-
您不应该为此使用循环。应该是从数组中转移()项目的方法。
标签: javascript html node.js for-loop intervals