VBScript:在 DOM 元素中使用变量

VBScript: Using a variable within a DOM element

本文关键字:变量 元素 DOM VBScript      更新时间:2023-09-26

我希望在对我正在构建的Web应用程序的DOM元素的引用中使用VBScript变量。 以下是受影响代码区域的简短摘录:

dim num
num = CInt(document.myform.i.value)
dim x
x = 0
dim orders(num)
For x = 0 To num
    orders(x) = document.getElementById("order" & x).value
    objFile.writeLine(orders(x))
Next

这是我第一次尝试 VBScript,我无法找到任何在线执行此类操作的方法。 正如您在上面的代码中看到的,我正在尝试创建一个数组(订单)。 此数组可以具有任意数量的值,但该数字将在 document.myform.i.value 中指定。 因此,For 循环遍历所有 ID 为 order+x 的文本输入(即 order0、order1、order2、order3、order4 等,最高为 num)

我的 order(x) 行似乎有问题,我认为它没有认识到我所说的getElementById("order" & x)是什么意思,而且我不确定如何做这样的事情。 有人有什么建议吗? 将不胜感激!

我能够让它工作。 感谢你们两位的时间和投入。 这是为我解决的问题:

而不是使用

document.getElementById("order" & x).value

我将整个 ID 设置为变量:

temp = "order" & x
document.getElementById(temp).value

它似乎按预期工作。 再次感谢您为此付出的时间和精力!

我只能假设这是客户端VBScript,因为document.getElementById()无法从服务器访问。

尝试 objFile.writeLine("order" & x),然后检查源以确保所有元素都在文档中。

[因为我不能在注释中输入代码...]这很奇怪。在我看来,一切都应该正常。

我唯一能想到的另一件事是:改变

orders(x) = document.getElementById("order" & x).value
objFile.writeLine(orders(x))

orders(x) = document.getElementById("order" & x)
objFile.writeLine(orders(x).value)

看起来好像您正在混合客户端和服务器端代码。

objFile.writeLine(orders(x))

这是VBScript写入文件,您只能在服务器上执行此操作。

document.getElementById

这是通常在JavaScript中执行的客户端大小的代码。您可以在客户端上的IE上使用VBScript,但很少有人这样做。

在服务器上,您通常会使用 request("formFieldName") 引用作为表单标记一部分的表单字段,而不是 DOM 元素(假设您使用的是经典 ASP)。

要使服务器端的内容出现在客户端上(当您构建页面时),您可以将其嵌入到HTML中,如下所示:

<% = myVariable %>

或像这样(作为代码块的一部分):

document.write myVariable

你不需要稍微改变你的循环吗?

For x = 0 To num - 1

例如对于 4 个项目,您需要从 0 迭代到 3。