Это будет работать в IE, Firefox и Chrome (кто-нибудь может проверить другие, пожалуйста? - Спасибо, @Bryan):
for (var i = 0; i < elem.attributes.length; i++) {
var attrib = elem.attributes[i];
console.log(attrib.name + " = " + attrib.value);
}
РЕДАКТИРОВАТЬ: IE повторяет все атрибуты, которые поддерживает рассматриваемый объект DOM, независимо от того, были ли они на самом деле определены в HTML или нет.
Вы должны взглянуть на логическое свойство attrib.specified
, чтобы узнать, существует ли атрибут на самом деле. Firefox и Chrome также поддерживают это свойство:
for (var i = 0; i < elem.attributes.length; i++) {
var attrib = elem.attributes[i];
if (attrib.specified) {
console.log(attrib.name + " = " + attrib.value);
}
}