想象一下以下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”),但这不起作用。
我该怎么做?
谢谢
.getElementsByClassName
方法返回节点集合,您应该从索引中选择集合中的节点,然后再次调用该方法:
oHtml.getElementsByClassName("ChefName")(0).getElementsByClassName("ChefLink")(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>
我希望这有帮助