AutoIt中的collection是什么类型啊?能通过下标来枚举吗?
举例来说吧,IE类中有一个_IETagNameGetCollection 的函数,功能是:返回一个对象中按标记名称或单元素索引的所有元素的对象集合.示例:#include <IE.au3>
$oIE = _IE_Example ("form")
$oInputs = _IETagNameGetCollection ($oIE, "input")
For $oInput In $oInputs
MsgBox(0, "Form Input Type", "Form: " & $oInput.form.name & " Type: " & $oInput.type)
Next
看说明这个函数返回的是一个集合,可是AutoIt中并没有集合的数据结构啊。但是又不能通过集合中的元素下标来取得这个元素,如这样的取法就是错误的:
$oInput = _IETagNameGetCollection ($oIE, "input")
但是这个集合中有多少元素又是已知的,可以通过legth得到,就是说下面的写法是正确的:
_IETagNameGetCollection ($oIE, "input").length 比如下面我的代码:
$oIE.document.getElementById("item1").getElementsByTagName('cite')就会出错。
但是同样的代码可以得到这个集合的长度
$oIE.document.getElementById("item1").getElementsByTagName('cite').length
For $i = 0 To $obj.length - 1
ConsoleWrite(@LF& VarGetType($obj[$i]) &@CR)
Next
楼上的那样得到的类型还是Object而已。
我试验出来了,原来在AutoIt中是用item去集合元素的,是这样的写法:
$oIE.document.getElementById("item1").getElementsByTagName('cite').item(索引号).value ls的筛选真有意思
getElementById("item1").getElementsByTagName('cite').
没用过 3楼写法跟你提到的一样
还是错误
访问数组元素用中括号[]
访问对象元素用小括号()#include <IE.au3>
$oIE = _IE_Example ("form")
$oInputs = _IETagNameGetCollection ($oIE, "input")
For $i = 0 To $oInputs.length - 1
ConsoleWrite(@LF&" 名: "& $oInputs($i).name &" 值: "& $oInputs($i).value &@CR)
Next
那不是au3里的类型 只能用for in 遍历
页:
[1]