Here is a demo code:
<div id="demo" myAttribute="ok"></div>
Here are two things I want:
- the attribute name, ie: 'myAttribute'.
- the element that contains the attribute 'myAttribute', ie: the div.
Here is a demo code:
<div id="demo" myAttribute="ok"></div>
Here are two things I want:
- the attribute name, ie: 'myAttribute'.
- the element that contains the attribute 'myAttribute', ie: the div.
- 2 For these types of questions, you usually get a better response if you start off with what you've tried and ask a more specific question about the issue you've run into. At the very least, explain why existing solutions (of which there are many) aren't working in your case. A specification document for the code you want isn't quite in the spirit of SO. – JDB Commented Apr 13, 2015 at 1:36
2 Answers
Reset to default 22To get a NodeList of Nodes that match a selector
var list = document.querySelectorAll('[myAttribute]');
list
will be Array-like but not inherit from Array. You can loop over it with for
and list.length
To get a NamedNodeMap of the attributes on an Element
var nnm = elem.attributes;
nnm
will be Array-like but not inherit from Array. You can loop over it with for
and nnm.length
To get the value of an attribute on an Element use .getAttribute
var val = elem.getAttribute('myAttribute');
val
will be null
if there is no such attribute
To test the existance of an attribute on an Element use .hasAttribute
var b = elem.hasAttribute('myAttribute');
b
will be a Boolean value, true
or false
Using jQuery you could do something like this.
div = $("[myAttribute]");
attrValue = div.attr('myAttribute');
div
would be the jQuery element.
attrValue
would be 'ok'