2011-12-06 49 views
6
<body> 
    <span someAttribute="xyz">.....</span> 
    ... 
    <div> 
    ... 
    <span someAttribute="abc">.....</span> 
    ... 
    <div someAttribute="pqr">.....</div> 
    ... 
    </div> 
</body> 

下面是一个简单的HTML页面得到的元素。我需要选择其属性的HTML元素我可以getAttribute()得到的属性值,但我需要首先选择的所有元素。Javascript功能来通过其属性

如何在javascript中获取具有属性名称为“someAttribute”的元素。一旦我得到的元素,我可以得到属性值,并使用我的功能。

注意:我想这样做,而不使用jQuery。

回答

6

将每个元素存储在数组中循环遍历每个元素,并且该元素包含属性someAttribute do somgthing。

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")); 
    } 
} 
+0

工作伙计..只需要一些额外的代码..生病了..谢谢... :) –

+0

伟大的,没有后顾之忧! – david

0

您可以传送DOM树的所有元素。

0

您可以使用document.body.getElementsByTagName("div")通过标记名称选择元素以获取文档中的所有div元素。此函数返回一组元素,您可以分析和过滤出不符合条件的元素。

0

可以使用

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

但是这也对所有的元素返回htmlheadbody ...

,然后做一个循环,并寻找属性。

+0

我想元素的属性名称为“someAttribute”..我怎么能这样做 –

0

我发现了一个名为getElementsByAttribute(doc, tagArray, attribute, attributeValue)

你可以给一个尝试到工作小提琴片段:http://jsfiddle.net/Yx7EU/

希望这可以帮助。

+0

hey'getElementsByAttributedoc,tagArray,attribute,attributeValue)'我真的neet从该属性值..可以只用'getElementsByAttributedoc, tagArray,属性)' –

6

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

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

VAR ELEM = document.querySelectorAll( '标签名[的attributeName = “ '+ valueInVariable +'”]')

+1

请不要发布只复制现有答案的答案,并且不添加任何新内容。 –