В вашем коде:
> var myTxt = document.getElementById("txt");
> myTxt.addEventListener("click", name1Click, false);
Вы добавляете функцию с именем name1Click в addEventListener , но ваша функция называется textclick . Исправьте это, и это "работает"
Также:
> function textclick() {
> var removeMe = document.getElementById("txt");
> var root = document.body;
> root.removeChild(removeMe);
Вполне вероятно, что элемент removeMe не всегда будет дочерним элементом тела, поэтому вы можете удалить его более обобщенно с помощью:
removeMe.parentNode.removeChild(removeMe);
Но узел можно заменить, а не удалить, см. Ниже.
> var addMe = document.createElement("input");
> addMe.setAttribute("type","text");
> addMe.setAttribute("id","i");
Метод setAttribute содержит ошибки в некоторых браузерах и его лучше избегать, если он не нужен. Для стандартных свойств DOM просто установите свойство напрямую:
addMe.type = 'text';
addMe.id = 'i';
> root.appendChild(addMe);
Вместо того, чтобы удалять один узел и вставлять другой, вы можете просто использовать одну операцию и заменить первую в общем случае:
removeMe.parentNode.replaceChild(addMe, removeMe);
> }