microformat-shiv.js
function(node, tagNames, attributeName) {
			var i = tagNames.length;

			while(i--) {
				if(node.tagName.toLowerCase() === tagNames[i]) {
					var attrValue = this.getAttribute(node, attributeName);
					if(attrValue && attrValue !== '') {
						return attrValue;
					}
				}
			}
			return null;
		}
function(node, tagNames, attributeName) {
			var i = tagNames.length;

			while(i--) {
				if(node.tagName.toLowerCase() === tagNames[i]) {
					var attrValue = this.getAttribute(node, attributeName);
					if(attrValue && attrValue !== '') {
						return attrValue;
					}
				}
			}
			return null;
		}
function ( node , tagNames , attributeName ) { var i = tagNames . length ; while ( i -- ) { if ( node . tagName . toLowerCase ( ) === tagNames [ i ] ) { var attrValue = this . getAttribute ( node , attributeName ) ; if ( attrValue && attrValue !== '' ) { return attrValue ; } } } return null ; }
gets attribute value from controlled list of tags

@param  {Array} tagNames
@param  {String} attributeName
@return {String || null}
gets attribute value from controlled list of tags