首页 > 解决方案 > 使用 jQuery 选择具有通配符模式的属性名称存在的元素

问题描述

我有具有自定义数据属性的 HTML 元素,这些属性具有不同的结尾但开头相同(不是值,而是属性名称本身)。这些属性可能有价值,也可能没有。我怎样才能选择所有这些?

<div data-validator-required> DIV 1</div>
<div data-validator-number="5.2"> DIV 2</div>
<div data-validator-submit> DIV 3</div>
<div data-validator-pattern="\d{5}-\d{3}-\d"> DIV 4</div>

我想选择所有具有名为“ data-validator-*”的数据属性的元素,正确的 jQuery 选择器是什么?

标签: jqueryjquery-selectors

解决方案


试试这个,你就完成了......简单易行......

$('div').filter(function() {
  for (attr of this.attributes)
    if (attr.name.startsWith("data-validator")){
      alert($(this).text());
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-validator-required> DIV 1</div>
<div data-validator-number="5.2"> DIV 2</div>
<div data-validator-submit> DIV 3</div>
<div data-validator="\d{5}-\d{3}-\d"> DIV 4</div>


推荐阅读