Как удалить содержимое тега div?

#javascript

#javascript

Вопрос:

Как я могу удалить содержимое тега div с помощью JavaScript?

Я пробовал некоторый код, но он удаляет только level1 div (и, конечно, все его дочерние элементы), но как я могу удалить только содержимое внутри level3 inside?

 function destroyDiv() {
  var div = document.getElementById("level1");
  div.parentNode.removeChild(div);
}  
 <div id="level1">

  <div id="level2">

    <div id="level3">
      <label> Test content </label>
    </div>

  </div </div>

  <div id=blahDiv>Remove me</div>
  <input type=button value='Remove the div' onclick='destroyDiv()'>  

Комментарии:

1. Вы хотите удалить сам div или содержимое внутри открывающих и закрывающих тегов конкретного div, из вашего сообщения неясно.

2. Я думаю, у вас есть довольно много ответов, почти единодушных и правильных.

Ответ №1:

Это могло бы сработать, document.getElementById("level3").innerHTML = ''; но попробуйте подумать об использовании jQuery, потому что .innerHTML реализация отличается в некоторых браузерах. jQuery будет выглядеть следующим образом $('#level3').html('');

Комментарии:

1. @holian: тогда почему question помечен javascript? и что насчет этого: как я могу удалить содержимое тега div с помощью javascript ?

Ответ №2:

Почему вы не получаете доступ напрямую level3 ?

    document.getElementById("level3").innerHTML = "";
  

Ответ №3:

Вы можете использовать:

 document.getElementById("level3").innerHTML = "";
  

Ответ №4:

Как насчет этого?

 var div = document.getElementById("level3");
div.innerHTML = "";
  

Ответ №5:

 (() => { 
          'use strict';
          let needle = 'level3';
          if ( needle === '' || needle === '{{1}}' ) {
              needle = '.?';
          } else if ( needle.slice(0,1) === '/' amp;amp; needle.slice(-1) === '/' ) {
              needle = needle.slice(1,-1);
          } else {
              needle = needle.replace(/[.* ?^${}()|[]\]/g, '\$amp;');
          }
          needle = new RegExp(needle);
          const divnode = ev => {
                                        if (ev) { window.removeEventListener(ev.type, divnode, true); }
                                    try {
                                            const divs = document.querySelectorAll('div');
                                            for (const div of divs) {
                                                    if (div.outerHTML.match(needle)) {
                                                                    div.remove();
                                                    }           
                                            }
                                    } catch(ex) {
                                        }
          };
          if (document.readyState === 'loading') {
                   window.addEventListener('DOMContentLoaded', divnode, true);
          } else {
                   divnode();
          }
})();
  

Ну вот и все. Специальный инструмент для удаления div с поддержкой регулярных выражений.