【问题标题】:For Each... Loop not working对于每个...循环不起作用
【发布时间】:2016-03-01 18:46:35
【问题描述】:

我正在努力将 VBScript 脚本合并到我的 HTML 中。基本上我现在正在做的是在页面加载时出现一些输入框,要求用户输入存储在数组中的四种颜色。后来我使用我创建的函数在页面上显示颜色。当我为数组的每个单独元素调用它时,该函数的工作方式与预期的一样,但我的 For Each 循环没有做任何事情。

这是从用户那里收集颜色信息的代码:

Option Explicit
Dim colour(4)

colour(0) = Inputbox("Colour number 1")
Msgbox("The colour you entered is: " & colour(0))
colour(1) = Inputbox("Colour number 2")
Msgbox("The colour you entered is: " & colour(1))
colour(2) = Inputbox("Colour number 3")
Msgbox("The colour you entered is: " & colour(2))
colour(3) = Inputbox("Colour number 4")
Msgbox("The colour you entered is: " & colour(3))

这是我稍后调用以在页面上显示这些颜色的脚本,没有循环,这正是我想要的:

Function printText(words)
    document.write("<h3 class='bodyheader'>Let's add the text '" & words & _
        "' to our website</h3>")
End Function

printText(colour(0))
printText(colour(1))
printText(colour(2))
printText(colour(3))

当我实现我的For Each 循环时,我根本没有得到任何类型的输出,页面的那个区域仍然是空白的。我得到的错误是

非法赋值:'元素'

Function printText(words)
    document.write("<h3 class='bodyheader'>Let's add the text '" & words & _
        "' to our website</h3>")
End Function

For Each element In colour
    printText(colour(element))
Next

我在循环中的语法有问题还是我遗漏了另一个问题?

【问题讨论】:

  • 当你使用 for each 时,你不会为你的数组使用下标,for each 你循环遍历数组的每个元素,并且你的情况下的“元素”变量是一个完整的对象跨度>

标签: vbscript


【解决方案1】:

只需使用:

For Each elm In colour
    printText(elm)
Next

或使用:

For i=0 To UBound(colour)
    printText(colour(i))
Next

【讨论】:

  • 使用第一种方法我仍然收到“非法赋值:'元素'”错误,使用第二种方法我收到“需要对象:'颜色'”错误。知道为什么会这样吗?它允许我调用颜色来单独打印,所以使用循环会有所不同似乎很奇怪,除非我只是在这里遗漏了一些东西。
  • 也许“元素”是 VBScript 中的保留字?我用“榆树”代替了它。立即尝试
  • 至于另一个错误,你是在同一个文件中声明你的数组吗?
  • 第一种方法在更改为“elm”后起作用。谢谢!至于第二种方法...数组仅在此代码上方几行声明。
  • 您可能还需要声明“elm”:Dim elm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
相关资源
最近更新 更多