【问题标题】:Selecting elements by class when they have multiple classes?当它们有多个类时按类选择元素?
【发布时间】:2014-07-22 01:25:25
【问题描述】:

考虑以下 HTML:

<span class="foo">foo</span>

在搜索具有单个类的元素时,XPath 语法非常好:

@class="foo"

但是,当元素具有多个类时,上述语法不起作用:

<span class="foo bar">foo bar</span>

我发现这种情况的唯一语法是这样的:

contains(concat(" ", normalize-space(@class), " "), " foo ")

这太恶心了!使用这种方法,查询字符串很快就会变得非常长。

有没有一种更简单的方法来搜索具有多个类的元素?

【问题讨论】:

    标签: xpath domxpath


    【解决方案1】:

    如果一个类包含空格,它应该包含多个类

    使用此输入:

    <span class="foo bar">foo bar</span>
    

    这个查询

    contains(normalize-space(span/@class), " ")
    

    输出是

    true
    

    【讨论】:

    • 我实际上的意思是当它有多个类时选择一个具有特定类的元素。因此,例如,当元素具有类“foo”和“bar”时,选择具有类“foo”的元素。我的问题标题措辞不佳,所以感谢您的尝试..
    • 这只是添加另一个contains 并单独检查类的问题。我相信 Joel 会解决这个问题,但它会比你的版本长。
    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 2011-11-30
    • 2011-02-03
    • 2023-03-18
    • 2019-08-22
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多