我确信我忽略了最明显的,但我需要循环浏览页面上的一些链接,但由于某种原因,当我尝试引入迭代数字并更改为字符串时,它没有工作。不工作是指当我运行该函数时,它会给出错误“未捕获的类型错误:无法读取 null 的属性“单击””。第一个示例显示它无需循环即可工作。第二个是不起作用的字符串组合。
这有效!
function myFunction() {
var grids = document.getElementsByClassName('gridRow')
setInterval(function(){
for(i=1;i<grids.length;i++) {
var test = '_resultsGrid__Button_1'
document.getElementById(test).click()
}
}, 2000);
}
这不是!
function myFunction() {
var grids = document.getElementsByClassName('gridRow')
setInterval(function() {
for(i=1;i<grids.length;i++) {
var test = '_resultsGrid__Button_' + String(i)
document.getElementById(String(test)).click()
}
}, 2000);
}
最佳答案
而不是做
for (i = 1;i < grids.length;i++) { ... }
你应该这样做
for (i = 1;i <= grids.length;i++) { ... }
在第一个示例中,您仅在 i
时循环是 less than (<)
元素长度,因此循环次数比长度少一次;您需要使用 less than or equal to (<=)
运算符改为包含最后一次迭代
function myFunction() {
var grids = document.getElementsByClassName('gridRow')
setInterval(function() {
for(i = 1; i <= grids.length; i++) {
var test = '_resultsGrid__Button_'+String(i)
document.getElementById(String(test)).click()
}
}, 2000);
}
关于javascript - 组合 2 个字符串时,Dom 元素显示的结果与静态输入的查询不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59671408/