Javascript 当组合两个字符串时,Dom元素显示的结果与静态输入的查询不同

Javascript 当组合两个字符串时,Dom元素显示的结果与静态输入的查询不同,javascript,for-loop,Javascript,For Loop,我肯定我忽略了最明显的,但我需要循环浏览页面上的几个链接,但由于某种原因,当我尝试引入迭代数字并更改为字符串时,它不起作用。通过不工作,我的意思是当我运行该函数时,它会给我错误'uncaughttypeerror:cannotreadproperty'click'ofnull'。第一个示例显示它在没有循环的情况下工作。第二个是不起作用的字符串组合 这管用 函数myFunction(){ var grids=document.getElementsByClassName('gridRow') se

我肯定我忽略了最明显的,但我需要循环浏览页面上的几个链接,但由于某种原因,当我尝试引入迭代数字并更改为字符串时,它不起作用。通过不工作,我的意思是当我运行该函数时,它会给我错误'uncaughttypeerror:cannotreadproperty'click'ofnull'。第一个示例显示它在没有循环的情况下工作。第二个是不起作用的字符串组合

这管用

函数myFunction(){
var grids=document.getElementsByClassName('gridRow')
setInterval(函数(){
对于(i=1;i而不是

(i=1;i
你应该做什么


用于(i=1;我是循环&两个元素都是相同的吗?没有理由其中一个会与另一个工作不同啊;我有第二个想法,因为第一个已经工作了,所以我想我会要求清楚-很高兴我能帮你早些解释它,但是你对我的第二个示例不工作的原因是什么?如果你有的话页面上与选择器相匹配的一个元素,
grids.length
将为1-当前循环仅在
i
小于长度(1)时运行通常这两个代码都可以工作。错误意味着程序没有找到具有给定ID的元素。您确定所有元素都存在并且具有指定的ID吗?如果看不到HTML的相关部分,就很难准确地判断出哪里出了错……旁注:通常您不必使用
String()
,隐式类型转换确保值按预期进行连接(如果
+
中至少有一个操作数是字符串),并且
.getElementById
也接受字符串。
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);
}
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);
}