如何使用 GoQuery 获取"选择>"选项的值



如果有这样的html:

<select name="" id="selectxzq">
<option value="">-chose-one-</option>
<option value="44">A-chose</option>
<option value="14">B-chose</option>
<option value="39">C-chose</option>
<option value="4">D-chose</option>
</select>

当我写这样的代码时:

...
body, err := ioutil.ReadAll(resp.Body)
rspHtml := mahonia.NewDecoder("UTF-8").ConvertString(string(body))
doc, err := goquery.NewDocumentFromReader(strings.NewReader(rspHtml))
if err != nil {
log.Fatalln(err)
}
// Find the review items
doc.Find("#selectxzq").Each(func(i int, s *goquery.Selection) {
optionT := s.Find("option").Text()
fmt.Printf("Review %d:  %s  n", i, optionT)
})

我还可以获得选项的文本((,如下所示:

Review 0: -chose-one-A-choseB-choseC-choseD-chose

但是我不知道如何使用goquery来获取选项的值,.Attr((方法也不能用于获取值

您还应该迭代这些选项。

doc.Find("#selectxzq").Each(func(i int, s *goquery.Selection) {
s.Find("option").Each(func(i int, selection *goquery.Selection) {
fmt.Printf("Review %d:  %s %s n", i,selection.AttrOr("value",""), selection.Text())
})
})

最后,为了获得值,我使用这种方式

val, exists := option.Attr("value")

重点是,在Attr((方法中存在一个exists并输入元素的val。

tks!

相关内容

  • 没有找到相关文章

最新更新