Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Удалить динамически-созданного потомка (https://javascript.ru/forum/dom-window/73513-udalit-dinamicheski-sozdannogo-potomka.html)

Kaha 21.04.2018 22:44

Удалить динамически-созданного потомка
 
Доброго времени суток! Подскажите, пожалуйста, новичку, куда копать.
Проблема: делаю вывод сообщения об успешном/не успешном добавлении данных на сайт: Динамически в div подгружаю класс с сообщением, через несколько секунд хочу удалить выведенное сообщение.

создал специальный div в который будет подгружаться класс с сообщением:
<div id = "result_send_login"></div>

функция с подгружаемым классом имеет такой вид:
function set_div(div_name, msg){
	
	var div = document.createElement('div');
	div.className = "alert alert-"+div_name;
	div.innerHTML = "<strong>"+msg;
	return div;
}


после получения фидбэка отправки формы через функцию
setTimeout(
    	function(div){
   			$("#result_send_login").removeChild(div);
		}, 
	1000);


хочу удалить выведенное таким образом
this_div = set_div('danger', 'Пароли не совпадают!');
$("#result_send_login").appendChild(this_div);

сообщение.
Сообщение выводится, но удалить его не получается(( Уже какой день бьюсь. Чувствую, что нужно копать в сторону
$(document).on( eventName, selector, function(){} );

Но опыта и знаний пока не хватает. Опытные дядьки, помогите, пожалуйста!))

рони 21.04.2018 23:04

Цитата:

Сообщение от Kaha
Сообщение выводится

:blink:
тогда вопрос что такое $ ?

Kaha 21.04.2018 23:08

эмм... как что...?) элемент jquery

рони 21.04.2018 23:11

Kaha,
в jquery нет методов appendChild и removeChild

рони 21.04.2018 23:14

Kaha,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  function set_div(div_name, msg) {
    var div = document.createElement("div");
    div.className = "alert alert-" + div_name;
    div.innerHTML = "<strong>" + msg;
    return div;
  }
  var this_div = set_div("danger", "Пароли не совпадают!");
  $("#result_send_login").append(this_div);
  setTimeout(function() {
    $(this_div).remove();
    // $("#result_send_login").empty()
  }, 1000);
});
  </script>
</head>

<body>
<div id = "result_send_login"></div>

</body>
</html>

Kaha 21.04.2018 23:15

ой, прошу прощения! Косяк в коде поправил, но как делу дальше быть?)

Kaha 21.04.2018 23:20

Так пробовал, но не работает((
$("#login_form").submit(function(event){
    event.preventDefault();
    var valueX = $("#field-password").val();
    var valueY = $("#field-password-repeat").val();
    if (valueX != valueY) {
    	this_div = set_div('danger', 'Пароли не совпадают!');
	$("#result_send_login").append(this_div);
	SetTimeout(function() {
		    $(this_div).remove();
	}, 1000);
       ......

рони 21.04.2018 23:24

Цитата:

Сообщение от Kaha
SetTimeout

:-?

Kaha 21.04.2018 23:24

Бллллииииннн..... жесть.... спать спать спать....
У меня выводилось условие когда пароли СОВПАДАЮТ, а там ничего нет... Вот оно и не работает! Капец... Еще раз прошу прощения и Большое спасибо за помощь!
По условию, когда пароли НЕ СОВПАДАЕТ - все работает.... оно и раньше работало, эхх.. вот невнимательность к чему приводит))

Kaha 21.04.2018 23:26

Цитата:

Сообщение от рони (Сообщение 483771)
:-?

поправил, спасибо!


Часовой пояс GMT +3, время: 05:24.