在VBA中使用getElementsByClassName

问题描述 投票:1回答:2

想象一下以下HTML:

<div class="TheChef">
    <div class="ChefRestaurant">
        <a class="ChefLink" href="#">Expensive Restaurant</a>
    </div>
    <div class="ChefName">
        <a class="ChefLink" href="#">Gordon Ramsey</a>
    </div>
</div>

在下面的代码中,我在VBA中使用getElementsByClassName从元素中获取innerHTML:

Dim oHtml As HTMLDocument
Dim oElement As Object
Set oHtml = New HTMLDocument

With CreateObject("WINHTTP.WinHTTPRequest.5.1")
    .Open "GET", "http://www.example.net", False
    .send
    oHtml.body.innerHTML = .responseText
End With

For Each oElement In oHtml.getElementsByClassName("RestaurantTown")
    strTown = oElement.innerHTML
Next oElement

但是,我需要从ChefRestaurant和ChefName元素中获取ChefLink。

我想知道oHtml.getElementsByClassName(“ChefName”)。getElementsByClassName(“ChefLink”),但这不起作用。

我该怎么做?

谢谢

vba
2个回答
0
投票

.getElementsByClassName方法返回节点集合,您应该从索引中选择集合中的节点,然后再次调用该方法:

oHtml.getElementsByClassName("ChefName")(0).getElementsByClassName("ChefLink")(0)


0
投票
document.getElementsByClassName("ChefLink")

给你[<a class=​"ChefLink" href=​"#">​Expensive Restaurant​</a>​, <a class=​"ChefLink" href=​"#">​Gordon Ramsey​</a>​]

虽然document.getElementsByClassName("ChefLink")[1]只给你第二个元素<a class=​"ChefLink" href=​"#">​Gordon Ramsey​</a>

我希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.