如果有这样的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)
})
我也可以得到选项的 text(),像这样:
Review 0: -chose-one-A-choseB-choseC-choseD-chose
但是我不知道如何使用goquery获取选项的值,.Attr()方法也不能用于获取值
答案 0 :(得分:0)
您还应该迭代选项。
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())
})
})
答案 1 :(得分:0)
最后,为了得到我用这种方式的价值
val, exists := option.Attr("value")
点是,有一个存在并在 Attr() 方法中输入元素的 val。
tks!