我想使用Go检索具有特定ID的所有标签。显然,最简单的方法就是使用goquery。
假设我在网站ul
中搜索标识为MyTag
的{{1}}个标记。我想列出此类site
中包含的所有li
。我之前从未使用过jQuery,所以我觉得有点失落。
ul
更具体的是,我的html看起来像
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>
<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
参数?它似乎并没有被使用
答案 0 :(得分:2)
GoQuery使用与jQuery / CSS相同的选择器语法。为此,如果要查找具有特定ID的元素,则需要使用散列#
符号。
document.Find("ul#MyTag")...
话虽这么说,ID 应该是唯一的。您使用的上述代码(我在您之前的问题中提供的代码)..按class
搜索(点.
表示法)。
向我们展示您正在使用此标记的标记,我将能够确切地看到您出错的位置。
RE:你的奖金问题。 int
参数是其父级中元素的索引。你没有 使用它..它是由goquery提供的。