当同一属性有多个值时,如何通过数据属性获取元素?

Posted

技术标签:

【中文标题】当同一属性有多个值时,如何通过数据属性获取元素?【英文标题】:How to get an element by data attribute when there are multiple values for the same attribute? 【发布时间】:2014-05-02 04:49:06 【问题描述】:

同一个属性有多个值时如何通过data属性获取一个元素?

<a data-multiplevalues="valuea valueb valuec">Test</a>

$("a[data-multiplevalues='valuea valueb valuec']") - works

$("a[data-multiplevalues='valuea']") - doesn't work

有什么想法吗?

【问题讨论】:

【参考方案1】:

您正在使用属性相等选择器,因此您需要完全匹配。您可以使用* 来获取包含给定属性值中的字符串的元素。如果您希望在开头看到的字符串,那么您可以使用以选择器开头的 ^ 而不是使用 * 您可以阅读有关通配符选择器 here 的更多信息。

$("a[data-multiplevalues*='valuea']") 

【讨论】:

【参考方案2】:

对于[data-multiplevalues='valuea'],该属性必须完全等于该值,如果您想选择一个具有包含空格分隔值的属性的元素,您可以使用

a[data-multiplevalues~='valuea']

更多信息请见http://www.w3.org/TR/selectors/#attribute-selectors

【讨论】:

看起来~ 有点严格,但正是我想要的

以上是关于当同一属性有多个值时,如何通过数据属性获取元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 selenium webdriver、NUnit 和 C# 获取元素属性的子属性值

Python selenium有多个class值时如何定位

Python selenium有多个class值时如何定位

如何根据其他属性从同一个集合中获取元素

获取数据库的属性值时,每个语句都会崩溃到Collection中,枚举操作可能无法执行

CSS之box-shadow属性