WedX - журнал о программировании и компьютерных науках

динамическое добавление и удаление div при нажатии кнопки x внутри div с использованием javascript

При нажатии кнопки «Добавить» на html-странице на html-странице должен отображаться div, а несколько div должны отображаться при нескольких щелчках. Каждый div должен иметь значок X, и при нажатии x div должен исчезнуть из пользовательского интерфейса. Также он должен поддерживать массив идентификаторов динамически сгенерированных элементов div, которые должны отображаться на консоли, и этот идентификатор следует удалять всякий раз, когда этот конкретный элемент div удаляется.

Этот код работает нормально, но вместо использования счетчика я могу использовать массив, в котором динамически идентификатор будет генерироваться всякий раз, когда создается div, и идентификатор должен быть удален при удалении div?

<!DOCTYPE html>
<html>
<head>

</head>
<body>

<p>Click the button to make a Division element.</p>

<button id="button" onclick="myFunctionAdd()">Add</button>

<div id="myDIV">
</div>

<script>

 var counter=1;
function myFunctionAdd() 
    {

    var x = document.createElement("DIV");
    x.id="div"

    var divNumber = counter;
    counter++;
    console.log("Div Number: "+ divNumber + " is created");

    var z= document.createElement("button");
    z.id="btn";
    x.setAttribute("style", "border :1px solid;height: 250px; width: 250px; top: 741px; left: 491px; padding:10px; margin: 50px;");
    z.setAttribute("style", "background: #000 url(/home/subodh/Desktop/Widget/icon_incorrect.svg) no-repeat 0px 0px; height: 30px; width:40px; top: 6px; left: 4px; float: right; margin: 0px; padding:0px; clear: both; float:right;");


    x.appendChild(z);
    document.body.appendChild(x).appendChild(z);

    z.onclick = function remove(btn) 
    {

    console.log("Div Number: "+ divNumber + " is deleted");
    x.parentElement.removeChild(x);
    }

   }


</script>

</body>
</html>
20.07.2017

  • Прочтите это и снова спросите stackoverflow.com/help/how-to-ask. 20.07.2017
  • что ты пробовал? ты искал в сети? я уверен, что на это отвечали десятки раз 20.07.2017
  • Вы устали что-то и потерпели неудачу? если да, то киньте код... 20.07.2017
  • Звучит как список покупок: AngularJS: w3schools.com/angular/angular_application.asp 20.07.2017
  • @PrashanthBenny, теперь вы можете обратиться к моему коду и вопросу 21.07.2017

Ответы:


1

См. этот пример: https://codepen.io/dsomekh/pen/GEVNWb.

function Clone() {


  var clone = document.getElementById('thediv').cloneNode(true); // "deep" clone
  document.getElementById("container").appendChild(clone);
}

function Delete(button) {
  var parent = button.parentNode;
  var grand_father = parent.parentNode;
  grand_father.removeChild(parent);
}
.mydiv {
  border: 2px solid red;
}
<div class="container" id="container">
  <div class="mydiv" id="thediv">
    I am the div
    <button type="button" onclick="Clone()" ) ">Clone</button>
    		<button type="button " onclick="Delete(this) ")">Delete</button>
  </div>
  <div>

20.07.2017
  • Также в этом коде я хочу показывать уникальный идентификатор каждого div в консоли всякий раз, когда они создаются, и этот идентификатор следует удалять всякий раз, когда этот конкретный div удаляется. 21.07.2017

  • 2

    Попробуй это

    function adddiv() {
      document.body.innerHTML += '<div id=' + Math.random() + '><button id="btn" onclick=closediv(this)>X</button>' + Math.random() + '</div>';
    }
    
    function closediv(e) {
      var par = $(event.target).parent();
      par.remove();
    }
    div {
      border: solid 1px red;
      width: 150px;
      height: 100px;
      margin: 2px;
    }
    
    #btn {
      clear: both;
      float: right;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <button id="add" onclick=adddiv()>Add</button>

    теперь все div создаются с уникальным идентификатором и с использованием javascript

    20.07.2017
  • Также в этом коде я хочу показывать уникальный идентификатор каждого div в консоли всякий раз, когда они создаются, и этот идентификатор следует удалять всякий раз, когда этот конкретный div удаляется. 21.07.2017
  • я обновил свой ответ, теперь div сгенерирован с уникальным идентификатором, проверьте его @maggie 21.07.2017
  • Было бы лучше, если бы этот ответ был предоставлен в javascript, так как я не знаю jquery :) 21.07.2017
  • теперь все div создаются с уникальным идентификатором и с использованием javascript @maggie 21.07.2017
  • Но теперь ваш метод closeDiv не работает. Я думаю, вы забыли отредактировать его в javascript. это все еще в jQuery. 21.07.2017
  • бро, это работает правильно, ты проверь правильно @maggie 21.07.2017
  • Нет, это не так. когда я нажимаю на знак x, div не удаляется 21.07.2017
  • ты запускаешь фрагмент кода братан 21.07.2017
  • Это дает эту ошибку в консоли: - ReferenceError: событие не определено 21.07.2017
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]