Skip to content

public static IEnumerable<IHtmlElement> Elements(this IHtmlContainer container, string selector) 不能识别选择器中的逗号语法 #10

@qaqz111

Description

@qaqz111
private void Button_Click_14(object sender, RoutedEventArgs e)
{
    var html =
        "<body>" +
            "<div>" +
                "<p><a id='1'>111</a></p>" +
                "<span><a id='2'>222</a></span>" +
                "<h><a id='3'>333</a></h>" +
            "</div>" +
            "this is text" +
            "<span>" +
                "<p><a id='4'>444</a></p>" +
                "<span><a id='5'>555</a></span>" +
                "<h><a id='6'>666</a></h>" +
            "</span>" +
        "</body>" +
        string.Empty;
    var doc = html.ParseAsHtml();
    var root = doc.Elements().First();
    var e1 = root.Elements();
    var e2 = root.Nodes();

    var e3 = root.Elements("div,span"); //只返回第一个div#div1
    //期望的行为同时是返回 div#div1 和 span#span1
    //这个期望行为与 jquery 的 $('body').children('div,span') 一致

    var e32 = root.Elements("span,div"); //只返回第一个span#span1

    var e4 = root.Find("div,span"); //正常
    var e42 = root.Find("span,div"); //正常,与e4结果一致
}

另外选择器的支持貌似还不全面,:root 和 :has 伪类就不受支持,doc.Find(":root") 会抛出异常提示“无法识别的伪类 root”,最麻烦的是 :no(selector) 伪类不支持。其他的伪类也有很多都不支持,下面链接页面中的伪类和其他选择器语法都有不支持的:

http://www.runoob.com/jquery/jquery-ref-selectors.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions