【问题标题】:How To Get All HTML Elements With A Specified Attribute Using JS?如何使用 JS 获取所有具有指定属性的 HTML 元素?
【发布时间】:2018-03-22 12:41:24
【问题描述】:

我想为我的项目创建一个自定义属性,但我无法这样做。我搜索了Google,但没有得到我想要的。

没有data-* 属性,请...

属性与 Vue.js 或 Angular.js 中的属性类似

这似乎是一个愚蠢的问题,但我是初学者,所以请帮忙。

【问题讨论】:

  • 有什么问题?
  • 在谷歌上找到这个:querySelectorAll
  • @Ele 在使用querySelectorAll 时我将不得不一一提及所有标签名称,这对于所有元素都很难做到
  • 标签名?不,您可以创建选择器,例如 jQuery 的 [myAttr^="Ele"] <-- 查找属性为 myAttr 的元素,其值以 Ele 开头,例如 <span myAttr="EleFromSO"><p myAttr="EleSO">,等等。 querySelectorAll
  • 谢谢!将其作为答案发送,以便我将其标记为最佳

标签: javascript html attributes custom-attributes


【解决方案1】:

你可以使用函数querySelectorAll

例如:

这段代码 sn-p 显示了如何查找属性为 myAttr 的元素,该属性的值以 Ele 开头

Array.prototype.forEach.call(document.querySelectorAll('[myAttr^="Ele"]'), function(elem) {
  console.log(elem.textContent);
});
<span myAttr="EleFromSO">EleFromSO</span>
<p myAttr="EleSO">EleSO</p>
<p myAttr="SOEle">SOEle value starts with SO</p>

如果需要查找属性为myAttr的元素:

Array.prototype.forEach.call(document.querySelectorAll('[myAttr]'), function(elem) {
  console.log(elem.getAttribute('myAttr'));
});
<span myAttr="EleFromSO">EleFromSO</span>
<p myAttr="EleSO">EleSO</p>
<p myAttr="SOEle">SOEle value starts with SO</p>

【讨论】:

  • 但是如果我不知道价值并想通过使用 querySelectorAll() 获得它怎么办
  • @ShardulNalegave 你的意思是,找到具有特定属性的元素吗?例如,所有具有myAttr 属性的元素都不管值?
  • 是的。我想要所有元素,以便我可以找到它们的值并对那个元素进行一些操作。
  • 我对 JS 的了解比我了解的要多,但是感谢您的帮助
猜你喜欢
  • 2014-06-09
  • 2011-10-11
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2011-01-04
  • 2018-08-11
  • 2013-01-16
  • 1970-01-01
相关资源
最近更新 更多