Некорректно работает функция для создания элементов
Некорректно работает функция для создания элементов:
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, время: 13:23. |