2014-10-02 49 views
0

ID标签,我想检索所有使用转到一个特定ID标签。显然最简单的方法就是使用goquery。搜索与goQuery

假设我在寻找ul标签与身份证MyTag在网站site。我想列出这样的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){ 
     ... 
    }) 
}) 

更多specitically,我的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说法?它似乎并没有在所有

回答

2

GoQuery使用采用了相同的选择语法的jQuery/CSS。为此,如果你想找到一个具有特定ID的元素,那么你需要使用散列#符号。

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

话虽这么说,ID是应该是唯一。您正在使用的上述代码(我在上一个问题中提供的)..通过class(点号.表示法)进行搜索。

我们证明您是使用这个标记,我会很清楚地看到你要去哪里错了。

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

+0

是的我正在使用该代码。我在问题 – meto 2014-10-02 01:21:23

+0

中添加了一个小的HTML示例好吧,我设法使用'li.Attr(“key”)'来完成它。谢谢! – meto 2014-10-02 01:25:06

+0

你的解决方案和问题绝不相关..让我的答案毫无意义。你问的有关元素ID ..但您的解决方案有事情做与自定义属性.. – 2014-10-02 01:36:48