使用goQuery通过id搜索标签

时间:2014-10-02 00:28:14

标签: html go goquery

我想使用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参数?它似乎并没有被使用

1 个答案:

答案 0 :(得分:2)

GoQuery使用与jQuery / CSS相同的选择器语法。为此,如果要查找具有特定ID的元素,则需要使用散列#符号。

document.Find("ul#MyTag")...

话虽这么说,ID 应该是唯一的。您使用的上述代码(我在您之前的问题中提供的代码)..按class搜索(点.表示法)。

向我们展示您正在使用此标记的标记,我将能够确切地看到您出错的位置。

RE:你的奖金问题。 int参数是其父级中元素的索引。你没有 使用它..它是由goquery提供的。