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

3

选择div class中的一部分文本:

<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(中间的3个)的div标签?不包括那些带有enabled_disabled 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();

1
你想要什么? - Sudharsan S
我不确定我是否理解正确,但您可以查看此帖子以获取类名:https://dev59.com/vHzaa4cB1Zd3GeqPV-Y- - danrodi
@bluewonder - 看看其他答案,也许会对你有帮助。 - Sudharsan S
3个回答

11

Fizzler

要选择只有类名为enabled_disabled的元素,你可以使用:

[class='enabled_disabled']

使用:not选择器在基本的Fizzler中不可用,但是如果你获取了FizzlerEx,就可以使用。

XPath

要选择只有类名为enabled_disabled的元素,你可以使用:

div[@class='enabled_disabled']

纯CSS

如果

分配的类enabled_disabled开头:

div[class^=enabled_disabled ]

如果

分配的类包含enabled_disabled

div[class*=enabled_disabled ]

如果

只有类名enabled_disabled

div[class=enabled_disabled ]

如果

具有类名enabled_disabled不具有类名disabled

div.enabled_disabled:not(.disabled)

根据您在问题中列出的HTML,最后两个都可以使用。

更多关于属性选择器来自MDN,还有更多关于:not()


SO应该提供答案以被标记为收藏,而不是问题。+1。 - Sid M
感谢您的回复。然而,我尝试了最后两个方法,使用doc.QuerySelectorAll(Fizzler)和doc.SelectNodes(XPATH),但是出现了以下错误:Xpath:ExceptionMessage:“'div.enabled_disabled:not(.disabled)'有一个无效的标记。”和Fizzler:ExceptionMessage:“未知的功能伪类 'not'。仅支持nth-child和nth-last-child。” - bluewonder
OP要求只选择中间的3个元素。 - Sudharsan S
@SW4 是的,我尝试了 div[class='enabled_disabled'] 和 div.enabled_disabled,但它返回了所有包括(disabled)独立存在的 div。 - bluewonder
XPath 相等匹配将是 div[@class='enabled_disabled'] - SW4
显示剩余4条评论

1
您可以使用此选择器来匹配类并避免其他方面的影响。
$(".enabled_disabled:not('.disabled')");

你可以从$()中取出内容

它是一个有效的CSS选择器

 .enabled_disabled:not(.disabled)

0

在CSS中使用not()选择器。:not伪类表示一个不符合其参数的元素。

.enabled_disabled:not(.disabled){


}

FIDDLE

更多相关内容

点击链接查看


OP想要使用XPath / Fizzler,但是:not不被支持。 - SW4
@SW4 是的,我正在使用 Xpath / Fizzler,并且这是我遇到的错误信息:消息:“发生了错误”,异常消息:“'.enabled_disabled:not(.disabled)' 有一个无效的标记”,异常类型:“System.Xml.XPath.XPathException”。 - bluewonder
我也尝试了div[@class='enabled_disabled'],但它返回所有的div标签。@Sudharsan - bluewonder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接