Пример #1
0
        /// <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;
            }
        }
Пример #2
0
        /// <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());
        }