【发布时间】:2017-08-31 21:16:20
【问题描述】:
最近,我发布了问题vbscript capture text in the HTML select option tag。这对我在 Internet Explorer 平台上的帮助很大。但是,我有一个新项目,它的网站有点复杂。该网站有多个嵌套表格,这些表格的格式设置为包含form 元素。我和我的团队已经弄清楚如何在除下拉框(select 标签)之外的大多数元素中获取和设置数据。我们能够从下拉列表中获取文本,但我们无法更改值。相反,所有选项都被清除,整个下拉列表为空白。
这是网站代码的修订版本,因为涉及的代码更多,但仅显示相关代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>...</head>
<body>
<form id="form1" action="AssignOFS.aspx" method="post">
<div class="aspNetHidden">...</div>
<div class="aspNetHidden">...</div>
<table width="100%" align="center" cellspacing="0">
<tbody>
<tr>
<td>
<table width="100%" align="center" cellspacing="0">...</table>
</td>
</tr>
<tr>
<td>
<table width="100%" align="center" cellspacing="0">
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr class="tr_data">...</tr>
<tr>
<td align="center">
<div id="pnlBtn1">...</div>
<div id="pnlView">
<table width="100%" align="center" cellspacing="0">
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr class="tr_data">
<td align="center">...</td>
<td valign="top">...</td>
<td valign="top">...</td>
<td valign="top">...</td>
<td nowrap="" valign="top">...</td>
<td align="left">...</td>
<td align="center">...</td>
<td align="center">
<select name="user" class="txt_input1" id="user" onchange="javascript:addUser(227);">
<option value="">--Select User--</option>
<option value="0123">Amy Jones (000456321)</option>
<option value="0432">Brian Wyatt (000745632)</option>
<option value="0345">Carl Lister (000874563)</option>
<option value="0654">Daniel Michaels (000987456)</option>
<option value="0567">Elizabeth Sweeny (001456321)</option>
<option value="0876">Fran Tarris (001745632)</option>
<option value="0789">Gail McMurphy (001874563)</option>
<option value="1098">Hannah Barisce (001987456)</option>
</select>
</td>
</tr>
</tbody>
</table
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
为了能够从下拉列表中获取文本,在找到包含下拉列表的表中的节点后,我们使用了 class 名称 txt_input1。此代码将为我们提供下拉列表中的整个列表:
objIE.Document.getElementsByTagName("table")(0).getElementsByTagName("td").Item(64).GetElementsByClassName("txt_input1")(0).innerText
我尝试将 select 下拉列表的值从“--Select User--”更改为列表中的名称之一,代码如下:
objIE.Document.getElementsByTagName("table")(0).getElementsByTagName("td").Item(64).GetElementsByClassName("txt_input1")(0).innerText = "Carl Lister"
这导致了空白下拉菜单。如果我将结尾更改为.Value,它只会从显示中删除“--Select User--”。它仍然没有将值更改为“Carl Lister”。在嵌套表中的 select 下拉列表中选择 option 时,我们是否遗漏了什么?
【问题讨论】:
标签: html excel drop-down-menu vba