I needed to write a function today in javascriptJavaScript that would return all elements based on a given attribute.
e.g retrieve all elements that have an id attribute in them.
The function I wrote for this is as follows:
function getElements(attrib) {
// get all dom elements
var elements = document.getElementsByTagName("*");
// initialize array to put matching elements into
var foundelements = [];
// loop through all elements in document
for (var i = 0; i < elements.length; i++) {
// check to see if element has any attributes
if (elements[i].attributes.length > 0) {
// loop through element's attributes and add it to array if it matches attribute from argument
for (var x = 0; x < elements[i].attributes.length; x++) {
if (elements[i].attributes[x].name === attrib) {
foundelements.push(elements[i]);
}
}
}
}
return foundelements;
}
Looking at this, I am sure it could be written a great deal better. Any feedback would be much appreciated!