我有一个清空div的函数,但是我希望它忽略一些元素?

时间:2017-11-09 04:25:46

标签: javascript html

JS:

function clearSlides(){

    var myNode = document.getElementById("modal_content");
    while (myNode.firstChild) {
      myNode.removeChild(myNode.firstChild); 
    }
  }

这是我删除#modal_content中所有内部元素的函数的代码。但我需要它忽略具有某个类的元素(无论该类可能是什么)。例如,如果我有3个带有.a .b和.c类的元素,我希望它删除除这些元素之外的所有内容。但我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:0)

function clearSlides(){

    var myNode = document.getElementById("modal_content");
    while (myNode.firstChild) {
      myNode.removeChild(myNode.firstChild).not(".Classname .Classname .Classname"); 
    }
  }

没试过吗

答案 1 :(得分:0)

使用remove方法而不是空。也可以使用spread运算符将nodelist转换为数组



function clearSlides() {
  var myNode = document.getElementById("modal_content");
  //use spread operator to convert nodelist to array for using
  // array methods
  var c = [...myNode.children];
  c.forEach(function(item, index) {
    console.log(item)
    // check if the current element have a class using 'contains'
    if (!item.classList.contains('a')) {
      //use remove method to remove the element
      item.remove();
    }
  })

}
clearSlides()

<div id="modal_content">
  <span class="a"> Have class a</span>
  <span> No CLass</span>
</div>
&#13;
&#13;
&#13;