jQuery - 选择属性名称(非值)以 .. 开头的所有元素

jQuery - select all elements with attribute name (not value) beginning with...?

本文关键字:开头 元素 非值 选择 属性 jQuery      更新时间:2023-09-26

假设我正在寻找所有具有属性"data-language"的元素,其值以"java"开头(将匹配"java"和"javascript")。我知道该怎么做:

$('[data-language^="java"]')

但我的问题是:如何获取所有具有属性(不是属性的值,而是实际属性名称本身)以某物开头的元素?例如:

  1. 属性名称以"data-s"开头的所有元素,或
  2. 所有具有数据属性的元素(以"data-"开头的属性)。

没有捷径,您可以使用attributes集合:

 $(someselector).filter(function(){
      var attrs = this.attributes;
      for (var i=0; i<attrs.length; i++) {
          if (attrs[i].name.indexOf("someStartOfName")==0) return true;
      }         
      return false;
 });

jQuery有一个很好的函数。

http://api.jquery.com/data/

$("div").data() // returns all data attributes to this div