drno-reg
@drno-reg
см не кратко

Как лучше удалить элемент формы типа button?

Здравствуйте.

По событию на форме создается элемет типа button.

function add_filter(){
            var icon = document.createElement("span");
            icon.className ="glyphicon glyphicon-remove-circle";
            var button = document.createElement("button");
            button.setAttribute('class', 'btn btn-default');
            button.setAttribute('id',"button_"+document.getElementById("search").value);
            button.innerHTML = document.getElementById("search").value;
            button.value = document.getElementById("search").value;
            button.name= "button_"+document.getElementById("search").value;
            button.onclick = function() {
                del_filter("button_"+document.getElementById("search").value);
               // console.log("Создан элемент: "+"button_"+document.getElementById("search").value);
            };
            button.appendChild(icon);
            var filter = document.getElementById("filter_hostnames");
            filter.appendChild(button);
        }


новые элементы добавляются к

<p id="filter_hostnames">ФИЛЬТР: </p>

далее реализовываю функцию удаления добавленных элементов

function del_filter(Element_Name){
        var filter=document.getElementById("filter_hostnames");
        var element=document.getElementById(Element_Name);
        filter.parentNode.removeChild(element);
}


в итоге получаю ошибку
что удаляемый узел не является потомком filter_hostnames

Uncaught NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

Как решить эту проблему?
  • Вопрос задан
  • 644 просмотра
Решения вопроса 1
potapchino
@potapchino
function add_filter(){
	...
	var button = document.createElement("button");
	...
	button.onclick = function() {
		del_filter(button);
	}
	...
}


function del_filter(element){
	var filter = document.getElementById("filter_hostnames");
	filter.removeChild(element);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Cr2ed
function del_filter(Element_Name){
        var filter=document.getElementById("filter_hostnames");
        var element=document.getElementById(Element_Name);
        filter.removeChild(element);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы