diff --git a/html.go b/html.go index 02e1534..a0011d6 100644 --- a/html.go +++ b/html.go @@ -30,6 +30,20 @@ func (n *Node) QuerySelector(selector string) *Node { return n.GetElementByTagName(selector) } +func (n *Node) QuerySelectorAll(selector string) []*Node { + return n.FindMany(func(n *Node) bool { + if strings.HasPrefix(selector, "#") { + return n.HasAttr("id", selector[1:]) + } + + if strings.HasPrefix(selector, ".") { + return n.HasClass(selector[1:]) + } + + return n.Type == html.ElementNode && n.Data == selector + }) +} + func (n *Node) GetElementById(id string) *Node { return n.FindOne(func(n *Node) bool { return n.HasAttr("id", id)