JavaScript通过属性获取元素

9
<body>
  <span someAttribute="xyz">.....</span>
  ...
  <div>
    ...
    <span someAttribute="abc">.....</span>
    ...
    <div someAttribute="pqr">.....</div>
    ...
  </div>
</body>

这是一个示例html页面.. 我需要通过其属性选择html元素,我可以通过getAttribute()获取属性值,但我需要先选择所有元素。
如何在javascript中获取具有属性名称为"someAttribute"的元素。一旦我获得了这些元素,我就可以获取属性值并使用我的函数。
注意:我希望不使用jquery来完成此操作。
6个回答

20

在新的浏览器中,你可以这样做:

var el = document.querySelector('[someAttribute="someValue"]');

6

将每个元素存储在一个数组中,然后循环遍历每个元素,如果该元素包含属性someAttribute,则执行某些操作。

var arr_elms = [];
arr_elms = document.body.getElementsByTagName("*");
var elms_len = arr_elms.length;

for (var i = 0; i < elms_len; i++) {
  if(arr_elms[i].getAttribute("someAttribute") != null){  
   alert("FOUND : " + arr_elms[i].getAttribute("someAttribute"));
   }
}

1

您可以通过标签名称选择元素,使用document.body.getElementsByTagName("div")以获取文档内所有div元素。该函数返回一个元素数组,您可以解析并过滤不符合条件的元素。


0

您可以遍历DOM树中的所有元素。


0
我发现了一个名为getElementsByAttribute(doc, tagArray, attribute, attributeValue)的代码片段。
你可以尝试一下这个可用的fiddle链接:http://jsfiddle.net/Yx7EU/ 希望这能有所帮助。

嘿,getElementsByAttributedoc, tagArray, attribute, attributeValue),我实际上需要从中获取属性值。只使用getElementsByAttributedoc, tagArray, attribute)能否完成? - Jeyanth Kumar

0

你可以使用

var all = document.getElementsByTagName('*');

但这也会返回 htmlheadbody...

然后循环遍历所有元素并查找属性。


我想获取具有属性名称为“someAttribute”的元素.. 我该怎么做? - Jeyanth Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接