0

Web ページに div を動的に挿入する関数を作成しました。しかし、これらのdivを削除する必要があります。div を追加するときに、すべての div にクラス名を使用しました。そこで、getElementsByClassName() を使用して dom からすべての要素を取得し、これらすべての要素をループして div を削除しました。私のコードは、以前に作成されたすべての div を削除していません。

私のコードスニペットを見つけてください:

var elements = document.getElementsByClassName("xxxx");

for (var i = 0; i < elements .length; i++) {

  var element = elements[i];

  if (element && element.hasChildNodes()) {

      var parent_node = element.parentNode;

      while(element.firstChild) {

          parent_node.insertBefore(element.firstChild, element);
      }

      parent_node.removeChild(element);

   }

   elements = document.getElementsByClassName("xxxx");

 }
4

2 に答える 2

0

そのクラスのすべての DIV 要素を削除することだけが必要な場合は、次のコードを使用できます。

var elements = document.getElementsByClassName("xxxx");
while ( elements[0] ) {
    elements[0].parentNode.removeChild(elements[0]);
}

DIV とその子ノードも削除されます。

于 2012-10-17T16:47:04.467 に答える
0

最後の行「elements = document.getElementsByClassName("xxxx");」を削除する必要があります。- その行により、ループを一周するときに他のすべての要素を見逃すことになります。

于 2012-10-17T16:32:31.473 に答える