在没有ID标记的列表中选择选项

时间:2015-12-01 22:30:56

标签: html vbscript

有人可以告诉我如何从VBScript下面的列表中选择“Expanded Fields / Comma Separated”选项吗?我搜索了所有内容,但我找到的大多数内容都与使用getelementbyID有关,在这种情况下无效。

<form name="mainform" action="proxy.aspx?page=download&amp;sub=submit" method="post">
<table width="100%">            
<tbody><tr id="headertext">             
<td colspan="2">                
<div id="PageHeader">                   
<div id="Title">Select Download File Type</div>             
<div id="Help">
<a href="javascript:openHelp(4010);">Help</a></div>
</div>          
 </td>      
</tr>   
<tr id="headertext2" style="display: none;">        
<td class="MainHeaderFont" colspan="2">         
<div>Download Request Submitted</div>           
</td>       
</tr>   
<tr><td colspan="2">

<select name="version">
<option value="300" selected="">Standard/Tab Delimited</option>
<option value="310">Standard with Card Code/Tab Delimited</option>
<option value="400">Expanded Fields/Comma Separated</option>
<option value="VbV">Expanded Fields with CAVV Response/Comma Separated </option>
</select>

</td>           
</tr>       
</tbody>
</table>
</form>

1 个答案:

答案 0 :(得分:0)

如果您无法按ID选择,则必须按名称或标签名称进行选择,并通过其他条件从结果集中标识相关元素,例如元素的文本。

在这种情况下,您需要获取的元素是<select>,因为您想迭代其子元素(<option>),特别是如果您想要更改选择,因为您必须取消选择当前为此选择的选项。

由于您的<select>元素具有name属性,因此可以使用getElementsByName,如下所示:

For Each option In doc.getElementsByName("version")(0)
  If option.innerText = "Expanded Fields/Comma Separated" Then
    option.Selected = True
  Else
    option.Selected = False
  End If
Next

doc是引用页面document属性的变量。

由于name属性不必是唯一的getElementsByName,因此返回一个列表,因此您需要选择要处理的元素(在本例中是第一个,在索引0处)