Банальное непонимание что
атрибут и
свойство - не одно и то же.
var a = document.createElement('a');
a.href = 'page.html';
alert(a.href);
alert(a.getAttribute('href'));
другой пример
var a = document.createElement('a');
a.onclick = function() { alert('свойство') };
alert(a.onclick);
alert(a.getAttribute('onclick'));
Атрибуты используются как правило для задания начального значения в HTML-коде. Атрибуты могут хранить только строковые значения.
Свойства же часто отражают значения атрибутов, но разные свойства работают по-разному.