我正在尝试每秒执行一次“点击”事件。我可以创建一个每秒运行一次的函数,但实际上不执行“ click”事件。我在这里做些蠢事吗?感觉这应该是一个轻松的成就。
我收到以下错误:“未捕获的TypeError:无法读取null的属性'click'”
为什么会发生此错误,如何解决?我只想对click进行编程,而不必手动单击按钮,而另一个Stack Overflow帖子建议仅使用.click()。
感谢您的帮助...
function click_fn() {
console.log('button clicked...');
}
function yourFunction(){
//console.log('testy');
document.querySelector('tes').click();
setTimeout(yourFunction, 1000);
}
yourFunction();
<button class='tes' onclick='click_fn()'>test</button>
答案 0 :(得分:2)
错误描述性很强,document.querySelector('tes')返回null,因此.click无法解析为null,因此错误
“未捕获的TypeError:无法读取null的属性'click'”
这是一个有效的代码段(基于JamesT的评论)
function click_fn() {
console.log('button clicked...');
}
function yourFunction(){
// console.log('testy');
document.querySelector('.tes').click();
setTimeout(yourFunction, 1000);
}
yourFunction();
<button class='tes' onclick='click_fn()'>test</button>
答案 1 :(得分:2)
如果您尝试通过class selector
选择一个元素,则需要在其前面加上一个.<classname>
function click_fn() {
console.log('button clicked...');
}
function yourFunction(){
//console.log('testy');
document.querySelector('.tes').click(); // Add . prefix
setTimeout(yourFunction, 1000);
}
yourFunction();
<button class='tes' onclick='click_fn()'>test</button>