Невозможно выбрать Direct Child из *goquery.Selection
В jQuery и CSS вы можете использовать >
символ, который указывает только на прямой дочерний элемент.
Это работает в Goquery с чем-то вроде doc.Find("body > ul")
, но когда у вас уже есть *goquery.Selection
и вы хотите выбрать прямой дочерний элемент выделения, как это можно сделать?
Например:
doc.Find("body > ul > li") // Works
doc.Find("body > ul > li").Each(func(i int, s *goquery.Selection) {
s.Find("> ul") // Does not work
})
Я хочу выполнить то, что вы ожидаете выбрать из второго блока кода, но я не добился успеха в этом.
Как это может быть сделано?
1 ответ
Как отмечено в этом каскаде (библиотека селектора, которую использует goquery), эта функциональность не реализована (и не будет) реализована.
Самый простой обходной путь будет использовать ChildrenFiltered()
Метод на ваш выбор:
doc.Find("body > ul > li").Each(func(i int, s *goquery.Selection) {
s.ChildrenFiltered("ul")
})