Подтвердить что ты не робот

Добавить/удалить HTML внутри div с помощью JavaScript

Я хочу, чтобы добавить несколько строк в div, а также удалить их. У меня есть кнопка "+" в верхней части страницы, которая предназначена для добавления контента. Затем справа от каждой строки есть кнопка "-", которая удаляет ту самую строку. Я просто не могу понять код javascript в этом примере.

Это моя основная структура HTML:

<input type="button" value="+" onclick="addRow()">

<div id="content">

</div>

Это то, что я хочу добавить внутри содержимого div:

<input type="text" name="name" value="" />
<input type="text" name="value" value="" />
<label><input type="checkbox" name="check" value="1" />Checked?</label>
<input type="button" value="-" onclick="removeRow()">
4b9b3361

Ответ 1

Вы можете сделать что-то вроде этого.

function addRow() {
  const div = document.createElement('div');

  div.className = 'row';

  div.innerHTML = '
    <input type="text" name="name" value="" />
    <input type="text" name="value" value="" />
    <label> 
      <input type="checkbox" name="check" value="1" /> Checked? 
    </label>
    <input type="button" value="-" onclick="removeRow(this)" />
  ';

  document.getElementById('content').appendChild(div);
}

function removeRow(input) {
  document.getElementById('content').removeChild(input.parentNode);
}

Ответ 2

Вы можете использовать эту функцию для добавления дочернего элемента в элемент DOM.

function addElement(parentId, elementTag, elementId, html) 

 {


// Adds an element to the document


    var p = document.getElementById(parentId);
    var newElement = document.createElement(elementTag);
    newElement.setAttribute('id', elementId);
    newElement.innerHTML = html;
    p.appendChild(newElement);
}



function removeElement(elementId) 

{

    // Removes an element from the document
    var element = document.getElementById(elementId);
    element.parentNode.removeChild(element);
}

Ответ 3

Чтобы удалить node, вы можете попробовать это решение, которое мне помогло.

var rslt = (nodee=document.getElementById(id)).parentNode.removeChild(nodee);

Ответ 4

К моему самому большому удивлению, я представляю вам метод DOM, который я никогда раньше не использовал, пытаясь найти этот вопрос и найти древний insertAdjacentHTML в MDN (см. CanIUse? InsertAdjacentHTML для довольно зеленой таблицы совместимости).

Таким образом, используя его, вы бы написали

function addRow () {
  document.querySelector('#content').insertAdjacentHTML(
    'afterbegin',
    '<div class="row">
      <input type="text" name="name" value="" />
      <input type="text" name="value" value="" />
      <label><input type="checkbox" name="check" value="1" />Checked?</label>
      <input type="button" value="-" onclick="removeRow(this)">
    </div>'      
  )
}

function removeRow (input) {
  input.parentNode.remove()
}
<input type="button" value="+" onclick="addRow()">

<div id="content">
</div>

Ответ 5

попробуйте выполнить

 function addRow()
    {
        var e1 = document.createElement("input");
        e1.type = "text";
        e1.name = "name1";

        var cont = document.getElementById("content")
        cont.appendChild(e1);

    }

Ответ 6

создать класс для этой кнопки, скажем:

`<input type="button" value="+" class="b1" onclick="addRow()">`

ваш js должен выглядеть так:

$(document).ready(function(){
  $('.b1').click(function(){
      $('div').append('<input type="text"..etc ');
  });
});