/// <summary> /// 从当前容器按照 CSS 选择器搜索符合要求的元素 /// </summary> /// <param name="container">要搜索子代元素的容器</param> /// <param name="expression">CSS 选择器</param> /// <returns>搜索到的符合要求的元素</returns> public static IEnumerable <IHtmlElement> Find(this IHtmlContainer container, string expression) { if (container == null) { throw new ArgumentNullException("container"); } if (expression == null) { throw new ArgumentNullException("expression"); } try { var selector = CssParser.Create(container, expression); return(selector.Filter(container.Descendants())); } catch (Exception e) { if (e.Data != null && !e.Data.Contains("selector expression")) { e.Data["selector expression"] = expression; } throw; } }
/// <summary> /// 创建 jQuery 对象 /// </summary> /// <param name="selector">选择器</param> /// <param name="scope">范畴限定</param> public jQuery(string selector, IHtmlContainer scope) { _selectorExpression = selector; _scope = scope; _selector = CssParser.Create(scope, selector); _elements = _selector.Filter(_scope.Descendants()); }