Arrays 将对象数组传递给子对象

Arrays 将对象数组传递给子对象,arrays,object,vbscript,parameter-passing,Arrays,Object,Vbscript,Parameter Passing,我需要创建一个动态子。Bellow是我试图实现的一个示例代码 'File1.vbs Sub MainProcess() Dim arrElements(3) arrElements(0) = div1 arrElements(1) = div2 arrElements(2) = div3 arrElements(3) = div4 Call InitHtml(arrElements) End Sub 'file2 Sub InitHtml(arrEl)

我需要创建一个动态
。Bellow是我试图实现的一个示例代码

'File1.vbs
Sub MainProcess()
   Dim arrElements(3)
   arrElements(0) = div1
   arrElements(1) = div2
   arrElements(2) = div3
   arrElements(3) = div4
   Call InitHtml(arrElements)
End Sub


'file2
Sub InitHtml(arrEl)
   Dim arr, count
   count = 1
   For each arr in arrEl
      arr.innerHtml = "number: " & count
      count = count + 1
   Next
End Sub
但问题是它在这里抛出了一个错误,表示该对象是必需的


我应该怎么做才能实现我的目标并消除错误?

通过一个数组,为每个
创建一个
。Arr与ArrElements(0)、ArrElements(1)、ArrElements(n)相同

所以不清楚你在做什么


正在将ArrElements传递到InitHTML。您可以在InitHTML中调用ArrElements-ArrEL。因此,
对于ARRL中的每个Arr
意味着第一次通过
Arr
ARRL(0)
(与
ARRELENT(0)
相同),然后是第二次通过。Arr可能为空,因为您正在分配未初始化的变量。因此,在一个不存在的东西上调用一个属性时,需要循环4次(如果第一次没有出错的话)。

实际上@MCND回答了我的问题。你可以在我问题的第一条评论下找到@MCND的答案。他说,如果它是一个对象,就应该有一个固定的前缀。我可能弄错了,但这给了我一个想法

来解释这一点

objDiv1,objDiv2,。。。是HTML中元素的id。 我所做的就是这样

'File1.vbs
    Sub MainProcess()
       Dim arrElements(5)
       set arrElements(0) = objDiv1
       set arrElements(1) = objDiv2
       set arrElements(2) = objDiv3
       set arrElements(3) = objDiv4
       set arrElements(4) = objDiv5
       Call InitHtml(arrElements)
    End Sub
它起作用了

但我也找到了一个解决方案,使用数组。下面是一个示例代码

'File1.vbs
Sub MainProcess()
   Dim arrElements
   arrElements = Array(objDiv1,objDiv2,objDiv3,objDiv4,objDiv5)
   Call InitHtml(arrElements)
End Sub


'file2
Sub InitHtml(arrEl)
   Dim count
   count = 1
   For each obj in arrEl
      obj.innerHtml = "number: " & count
      count = count + 1
   Next
End Sub
我希望这能帮助其他人


干杯

如果
div1
是一个对象,那么
set
在哪里?@MCND-Nice我明天会试试。谢谢,那么
div1
div4
从哪里来呢?
objEl
的名字比
arr
@MCND更合适,实际上你的建议很管用。集合是缺少的部分:D。请在答案中添加您的注释,以便我可以将其标记为正确。非常感谢。对不起,我没有得到你的答案。你能详细说明一下吗,我试图通过将一个对象作为数组传递给子对象并在那里进行操作来操作它。