Html document.getElementsByTagName是否在vbscript中工作?

Html document.getElementsByTagName是否在vbscript中工作?,html,vbscript,Html,Vbscript,好吧,它起作用了,只是没有产生任何有价值的东西: elems = document.getElementById("itemsTable").getElementsByTagName("TR") for j = 0 to ubound(elems) - 1 ' stuff next 好吧,那是行不通的,很明显elems是一个对象,而不是像你在那个花哨的javascript中得到的数组。不过我还是坚持使用vbscript 那么,如何在vbscript中迭代表中的所有行呢 编

好吧,它起作用了,只是没有产生任何有价值的东西:

elems = document.getElementById("itemsTable").getElementsByTagName("TR") 
for j = 0 to ubound(elems) - 1      
   ' stuff 
next
好吧,那是行不通的,很明显elems是一个对象,而不是像你在那个花哨的javascript中得到的数组。不过我还是坚持使用vbscript

那么,如何在vbscript中迭代表中的所有行呢


编辑:是的,它是vbscript,很烂。我在这里没有选择,所以不要说“使用jQuery!!”

elems在JavaScript中也不是数组,它只是碰巧与JavaScript数组对象共享一些属性

我不知道VB,但我想你可以:

for j = 0 to elems.length - 1      
   ' stuff 
next

正如您正确指出的那样,
getElementsByTagName
不会返回数组,因此
UBound()
不会对它起作用。将其视为一个集合

通过它进行教学应该是有效的:

 Set NodeList = document.getElementById("itemsTable").getElementsByTagName("TR") 
 For Each Elem In NodeList
  ' stuff 
  MsgBox Elem.innerHTML
 Next

如果您有IE8+,则可以使用。所以应该是:

Dim elem: Set elem = document.getElementById("itemsTable").getElementsByTagName("TR").item(1);

出于好奇,为什么要使用vbscript?因为这是我老板告诉我要使用的。实际上,Javascript中没有数组,而是节点列表。这有点不同。告诉你的老板他/她错了。当IE是最好的浏览器时,用vbscript编写浏览器脚本甚至不是一个好主意。@Joel:啊,告诉我吧。好消息是:在4天内,没有更多的vbscript(得到一份新工作)。请注意,我说“显然elems是一个对象”。对象类型没有长度。哇。听起来VB有一个坏掉的DOM实现。非常好,谢谢。我从来都不明白为什么有时候你要安排一些事情,而有时候你不需要。如果可以的话,我会给你一笔赏金,这样你就可以得到更多的回答。在SO上回答vbscript问题是一项吃力不讨好的工作。哈哈,太酷了。顺便说一句,看看这页你的问题关于设置:该死,我忘了“设置”再次@jcollum(或其他),您需要在尝试传递对象引用时使用它。否则,您将传递一个变量,很可能是一个字符串(值或名称),但肯定不是您想要的