用于按属性名称选择元素的普通js以

Abd*_*UMI 5 javascript regex built-in selector

背景:

我想选择所有以属性名称开头的元素ng-.


使用jQuery,以下链接是与此问题最接近的线程:

  1. jQuery - 如何按属性名称选择值以.

  2. 如何按属性名称删除所有属性.

然而,第一个使用jQuery和第二做出决议删除的问题已经选定的元素选择.

我试试这个:

document.querySelectorAll('[ng-*]')
Run Code Online (Sandbox Code Playgroud)

它不起作用,而是抛出错误.

mpl*_*jan 5

在这里,我使用querySelectorAll来获取所有要检查的对象。

然后,我查看每个返回对象的属性集合

function attrStartsWith(sel,str) {
  var el = document.querySelectorAll(sel), res=[];
  
  for (var i = 0, n=el.length; i < n; i++){
    for (var j=0;j<el[i].attributes.length;j++) {
      if (el[i].attributes[j].name.indexOf(str)==0) {
        res.push(el[i]); 
      }
    }
  }
  return res;
}
console.log(attrStartsWith("*","ng")); // all
console.log(attrStartsWith("div","ng")); // divs
Run Code Online (Sandbox Code Playgroud)
<div ng-a="a">a</div>
<div ng-b="b">b</div>
<p ng-c="c">c</p>
Run Code Online (Sandbox Code Playgroud)