Некорректно работает функция для создания элементов
Некорректно работает функция для создания элементов:
Element = function( html, where ) {
var wrapper = document.createElement( 'DIV' );
wrapper.innerHTML = html;
for ( var i = 0; i < wrapper.childNodes.length; i++ ) {
where.appendChild( wrapper.childNodes[ i ] );
}
}
Вызов Element( '<div>1</div><u>2</u>', document.body ); добавляет только первый элемент. Проверял алертами, выдаёт только второй элемент. Консоль ошибок на втором элементе пишет Uncaught exception: Error: WRONG_ARGUMENTS_ERR, хотя алерт с этим элементом выдаёт. Где ошибка? |
while (wrapper.childNodes.length) {
where.appendChild(wrapper.childNodes[0]);
}
|
Спасибо. А почему с for не работает?
|
Потому что элементы перемещаются из одного узла в другой. length меняется.
|
Кстати, exec, в глобальной видимости есть объект с именем
Element (с большой буквы), который, вроде как, конструктор.
alert(document.createElement("foo") instanceof Element)
Ничего страшного в этом случае произойти, вроде, не должно, но вообще, остерегитесь от переопределения предопределенных объектов. |
| Часовой пояс GMT +3, время: 23:46. |