我正在尝试用Javascript点击一个div。我可以使用Jquery。在我使用QuerySelector或XPath选择元素并在元素上使用.click()之后,它实际上并没有结束单击div,也没有做任何事情。
document.querySelector('.GriddyLayout > div:nth-child(1)').click()我正在试用的网站是here。由于某些原因,在Javascript控制台中运行上述代码并未选择该选项。有没有人知道如何用JS点击这个按钮(div),这样它才能真正点击?将对所有答案进行投票,并接受效果最好/第一的答案。
发布于 2017-12-10 15:42:17
您需要按特定顺序触发一些事件。在javascript中,您可以使用:
var targetNode = document.querySelector('.GriddyLayout > div:nth-child(1)');
triggerMouseEvent(targetNode, "mousedown");
triggerMouseEvent(targetNode, "mouseup");
triggerMouseEvent(targetNode, "click");
function triggerMouseEvent(node, eventType) {
var clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent(eventType, true, true);
node.dispatchEvent(clickEvent);
}发布于 2017-12-10 15:14:35
您可以通过使用纯JavaScript来实现这一点。
var divs = document.getElementsByClassName("GriddyLayout");
for(var i = 0; i < divs.length; i++){
divs[i].addEventListener('click', function() {
console.log('clicked' +" "+this.innerHTML);
});
}
function callClickEvents() {
for(var i = 0; i < divs.length; i++){
divs[i].click();
}
}
setTimeout(function(){ callClickEvents() }, 100);
// click nth element i.e 3rd (2+1)
divs[2].click();
console.log("Now click all divs");<div class="GriddyLayout">hello 1</div>
<div class="GriddyLayout">hello 2</div>
<div class="GriddyLayout">hello 3</div>
<div class="GriddyLayout">hello 4</div>
.
<div class="GriddyLayout">hello n</div>
发布于 2017-12-10 15:16:22

试试这个:document.querySelector('.GriddyLayout > div:nth-child(1)').addEventListener('click', function() { console.log('clicked') })
https://stackoverflow.com/questions/47736684
复制相似问题