我想使用Go检索所有具有特定id的标签。显然,最简单的方法就是使用goquery。
假设我正在网站site
中查找id为MyTag
的ul
标签。我想列出这样一个ul
中包含的所有li
。我以前从未使用过jQuery,所以我感到有点失落。
resp, _ := http.Get(site)
httpBody := resp.Body
node, _ := html.Parse(httpBody)
document := goquery.NewDocumentFromNode(node)
document.Find("ul.MyTag").Each(func(i int, ul *goquery.Selection) { //MyTag will not work here
ul.Find("li").Each(func (i int, li *goquery.Selection){
...
})
})
更具体地说,我的html看起来像
<html>
<body>
<ui id="yes">
<li key="1">a</li>
<li key="2">b</li>
<li key="3">c</li>
<li key="4">d</li>
</ui>
<ui id="no">
<li key="1">11</li>
<li key="2">22</li>
<li key="3">33</li>
<li key="4">44</li>
</ui>
</body>
</html>
我想检索密钥1,2,3,4
额外问题:为什么每个都有一个int
自变量?它似乎根本没有被使用
GoQuery使用与jQuery/CSS相同的选择器语法。为此,如果要查找具有特定ID的元素。。则需要使用散列CCD_ 8符号。
document.Find("ul#MyTag")...
也就是说,ID被认为是唯一的。你正在使用的上面的代码(我在你之前的一个问题中提供的)。。按class
(点.
表示法)进行搜索。
让我们看看你在上面使用的标记,我就能准确地看到你哪里出了问题。
回复:您的奖金问题。int
参数是元素在其父元素中的索引。您没有的来使用它。不过它是由goquery提供的。