Сведения о вопросе

profi

06:43, 3rd August, 2020

Теги

javascript   html   dom    

Как удалить дочерний узел в HTML с помощью JavaScript?

Просмотров: 632   Ответов: 9

Есть ли такая функция, как document.getElementById("FirstDiv").clear() ?



  Сведения об ответе

Chhiki

11:24, 29th August, 2020

Чтобы ответить на первоначальный вопрос - есть различные способы сделать это, но следующий будет самым простым.

Если у вас уже есть дескриптор дочернего узла, который вы хотите удалить, то есть у вас есть переменная JavaScript, которая содержит ссылку на него:

myChildNode.parentNode.removeChild(myChildNode);

Очевидно, что если вы не используете одну из многочисленных библиотек, которые уже делают это, вы захотите создать функцию, чтобы абстрагировать это:

function removeElement(node) {
    node.parentNode.removeChild(node);
}

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


  Сведения об ответе

baggs

06:33, 28th August, 2020

Если вы хотите очистить div и удалить все дочерние узлы, вы можете поставить:

var mydiv = document.getElementById('FirstDiv');
while(mydiv.firstChild) {
  mydiv.removeChild(mydiv.firstChild);
}


  Сведения об ответе

SSESION

08:10, 12th August, 2020

targetNode.remove()

Это рекомендовано W3C по состоянию на конец 2015 года и является ванильным JS . Намного лучше / чище, чем предыдущий метод.

Для вашего случая использования:

document.getElementById("FirstDiv").remove();

Если вам нужен полифилл для обеспечения обратной совместимости:

if (!('remove' in Element.prototype)) {
    Element.prototype.remove = function() {
        if (this.parentNode) {
            this.parentNode.removeChild(this);
        }
    };
}

Мозилла Документы

Поддерживаемые Браузеры - 92% Mar 2018


  Сведения об ответе

P_S_S

00:56, 12th August, 2020

Перед удалением узла необходимо удалить все обработчики событий, установленные на нем, чтобы избежать утечки памяти в IE


  Сведения об ответе

VERSUION

10:55, 5th August, 2020

Решение jQuery

HTML

<select id="foo">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

Javascript

// remove child "option" element with a "value" attribute equal to "2"
$("#foo > option[value='2']").remove();

// remove all child "option" elements
$("#foo > option").remove();

Рекомендации:

Атрибут равен селектору [имя=значение]

Выбирает элементы, которые имеют указанный атрибут со значением точно равный определенному значению.

Селектор потомков ("родитель > потомок”)

Выбирает все прямые дочерние элементы задается "child" элементов указанный "parent"

.

remove()

Подобный .empty(), то .remove() метод извлекает элементы из DOM. Мы пользуемся .remove() когда мы захотим удалите сам элемент, а также все, что там внутри. В дополнение к сами элементы, все связанные события и данные jQuery, связанные с элементы удаляются.


  Сведения об ответе

crush

05:29, 23rd August, 2020

Используйте следующий код:

//for Internet Explorer
document.getElementById("FirstDiv").removeNode(true);

//for other browsers
var fDiv = document.getElementById("FirstDiv");
fDiv.removeChild(fDiv.childNodes[0]); //first check on which node your required node exists, if it is on [0] use this, otherwise use where it exists.


  Сведения об ответе

prince

18:59, 11th August, 2020

    var p=document.getElementById('childId').parentNode;
    var c=document.getElementById('childId');
    p.removeChild(c);
    alert('Deleted');

p-родительский узел, а c-дочерний узел
parentNode-это переменная JavaScript, содержащая родительскую ссылку

Легкий для понимания


  Сведения об ответе

#hash

02:39, 4th August, 2020

Вы должны иметь возможность использовать метод .RemoveNode узла или метод .RemoveChild родительского узла.


  Сведения об ответе

lesha

06:57, 27th August, 2020

Вероятно, вам следует использовать библиотеку JavaScript, чтобы делать такие вещи.

Например, MochiKit имеет функцию removeElement, а jQuery-функцию remove .


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться