2

我一直在搜索整个论坛、msdn 和专业教程,但找不到 VBA 的答案:如何getElementById在要查找的 id 是动态的访问 VBA 模块中进行工作?

让我们看一下html代码:

<DIV id=rowToolTipContainer>
<DIV class=contactsCard id=resultsTooltip1122286Contents style="DISPLAY: none">
<TABLE class="shadow-box tooltip">
<TBODY>

以及我如何尝试找到它:

Dim ResultDIV As HTMLDivElement   
Set ResultDIV = HTMLDoc.getElementById("resultsTooltip*")

让我说根据每个结果返回的 html 具有不同的 id(数字会发生变化),因此每个 DIV 的 id 始终是:

id=resultsTooltipxxxxxxxContents哪里xxxxxxx总是不同的数字

任何帮助将不胜感激。

4

2 回答 2

4

试试这样的:

Dim ContainerDiv As HTMLDivElement, ResultDIV As HTMLDivElement

Set ContainerDiv = HTMLDoc.getElementById("rowToolTipContainer")
For Each ResultDIV In ContainerDiv.GetElementsByTagName("div")
    If ResultDIV.ID Like "resultsTooltip*Contents" Then

        '' What do you want to do here?

        Exit For
    End If
Next
于 2012-06-15T14:07:52.063 回答
0
  1. 确定始终包含 ID 的最接近的父标记(手动,通过查看您的 HTML)。
  2. <div>枚举该标签的所有后代,ID用 测试它们的属性Like
于 2012-06-15T10:32:17.990 回答