В дополнение к тому, что предлагают другие ответы (что вам нужно фактически вставить элемент в DOM, чтобы он был найден через getElementById()
), вам также нужно использовать имя атрибута в нижнем регистре, чтобы IE6 мог распознать его как id
:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.body.appendChild(newDiv);
alert("Added:"
+ newDiv.getAttribute("id")
+ ":" + newDiv.id + ":"
+ document.getElementById("obj_1000") );
... отвечает как положено:
Added:obj_1000:obj_1000:[object]
В соответствии с документацией MSDN для setAttribute()
, вплоть до IE8 существует необязательный третий параметр , который контролирует, учитывает ли он регистр в отношении имени атрибута. Угадай, какое значение по умолчанию ...