I needed to write a function today in JavaScript 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!