CSS选择器选择div类名的某些部分

时间:2014-07-08 08:26:17

标签: html css xpath css-selectors

在div类中选择一部分文本:

<div class="enabled_disabled disabled">
<div class="enabled_disabled">
<div class="enabled_disabled">
<div class="enabled_disabled">
<div class="enabled_disabled disabled">

我有那些div标签,是否有任何xpath语法或fizzler CSS选择器语法只选择那些只有 enabled_disabled 的div标签(中间的3)?不是那些 enabled_disabled已禁用

的人
var html = new HtmlDocument();
html.LoadHtml(getitems);

var doc = html.DocumentNode;
var items = (from r in doc.QuerySelectorAll("div.enabled_disabled:not(.disabled)")
    let Name = r.InnerHtml//QuerySelector("div.enabled_disabled div.title_bar div.rate_title span.name").InnerText.CleanInnerText()
    select new {
        CName = Name
    }).ToArray();

3 个答案:

答案 0 :(得分:10)

Fizzler

要选择enabled_disabled的元素,您可以使用:

[class='enabled_disabled']

使用:not选择器为not available in vanilla Fizzler,但如果您抓取FizzlerEx

,则可以使用

的XPath

要选择enabled_disabled的元素,您可以使用:

div[@class='enabled_disabled']

在普通的旧CSS

如果div的指定班级 enabled_disabled开头:

div[class^=enabled_disabled ]

如果div指定的类包含 enabled_disabled

div[class*=enabled_disabled ]

如果div 具有类enabled_disabled

div[class=enabled_disabled ]

如果div enabled_disableddisabled

div.enabled_disabled:not(.disabled)

鉴于您在问题中列出的HTML,最后两个中的任何一个都适合您。

more on attribute selectors from MDN,以及more on :not()

答案 1 :(得分:1)

您可以使用与该类匹配的此选择器,并避免使用另一个。

$(".enabled_disabled:not('.disabled')");

您可以从$()

中取出内容

,它是valid css selector

 .enabled_disabled:not(.disabled)

答案 2 :(得分:0)

在css中使用not()选择器。:not pseudo-class表示未由其参数表示的元素。

.enabled_disabled:not(.disabled){


}

FIDDLE

更多关于

SEE THE LINK