【问题标题】:How can I select elements based in part of data- attribute?如何根据部分数据属性选择元素?
【发布时间】:2018-02-21 17:37:22
【问题描述】:

我可以在选择器中使用 contains: 来选择所有具有 data- 属性的元素,还是有其他方法可以选择 all 这些元素? 例如所有包含“NL”或“UK”的元素

【问题讨论】:

标签: jquery attributes jquery-selectors contains


【解决方案1】:

您不想匹配UKR,例如如果使用*,那么您应该使用~ 在以空格分隔的单词列表中查找完全匹配

[attr~=值]

表示属性名称为 attr 的元素,其值是以空格分隔的单词列表,其中一个恰好是值。

看看这里(阅读 2 分钟)

属性选择器

参考号:https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

[data-country~="UK"] {
  color: red;
}
<span data-country="USA UK CHN">USA UK CHN</span><br>
<span data-country="USA UK">USA UK</span><br>
<span data-country="UK USA">UK USA</span><br>
<span data-country="UK">UK</span><br>
<hr>
You dont want the following to be matching:<br>
<hr>
<span data-country="USA CHN">USA CHN</span><br>
<span data-country="USAUK">USAUK</span><br>
<span data-country="UKR">UKR</span>

【讨论】:

  • 是否可以反其道而行之?选择数据是否不包含值?我试试 $('[data-country*!="All"]').hide();
  • @CarlosMartins span[data-country]:not([data-country~="UK"])span[data-country] 选择所有具有属性 data-country 的跨度,:not 过滤所有匹配的包含 UK 的数据国家
【解决方案2】:

你也可以这样使用:

$('[data-country^="UK"]') {
  color: red;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 2010-09-18
    • 2018-02-23
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多