Как мне добавить div и забрать его позже
-
09-06-2019 - |
Вопрос
Я думаю, что это характерно для IE 6.0, но...
В JavaScript я добавляю div
в ДОМ.Я назначаю id
атрибут.Когда я позже попытаюсь взять трубку div
по id
все, что я получаю, это null
.
Есть какие-нибудь предложения?
Пример:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);
alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );
Предупреждающие отпечатки "::null"
Кажется, в Firefox 2.0 работает нормально +
Решение
В дополнение к тому, что предлагают другие ответы (что вам нужно фактически вставить элемент в 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 существует необязательный третий параметр это определяет, чувствительно ли оно к регистру в отношении имени атрибута.Угадайте, что используется по умолчанию...
Другие советы
Div необходимо добавить к элементу, чтобы он стал частью документа.
document.appendChild(newDiv);
alert( document.getElementById("obj_1000") );
Вы должны добавить div в dom.
// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);
newDiv.setAttribute( "ID", "obj_1000");
должно быть
newDiv.id = "obj_1000";
Хммм, спасибо, что наставили меня на правильный путь, ребята...это было странно, но оказывается, что если я меняю регистр на нижний, все начинает работать просто отлично...
Готовый Результат:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.appendChild(newDiv);
alert("Added:" +
newDiv.getAttribute("id") + ":" +
newDiv.id + ":" +
document.getElementById("obj_1000"));
СТРАННО...ОЧЕНЬ СТРАННО