Domanda

Come posso eliminare tutte le tabelle in una pagina Web? Alle tabelle non sono associati ID.

È stato utile?

Soluzione

Versione molto semplice:

var tables = document.getElementsByTagName("TABLE");
for (var i=tables.length-1; i>=0;i-=1)
   if (tables[i]) tables[i].parentNode.removeChild(tables[i]);

Altri suggerimenti

Pericolo! getElementsByTagName restituisce un NodeList "live". Nel codice di Joel, la rimozione dell'elemento 0 sposta gli elementi nell'elenco verso il basso in modo che quando rimuovi l'elemento 1, ne hai perso uno.

Possibili alternative: se sai che rimuoverai sempre ogni elemento, puoi usare un ciclo while:

var tables= document.getElementsByTagName('table');
while (tables.length>0)
    tables[0].parentNode.removeChild(tables[0]);

In alternativa, se è possibile rimuoverlo o meno, ma l'ordine di iterazione non è importante, scorrere l'elenco all'indietro:

var tables= document.getElementsByTagName('table');
for (var i= tables.length; i-->0;)
    tables[i].parentNode.removeChild(tables[i]);

Se potessi o non potessi rimuovere e devi iterare in avanti, sei nella posizione noiosa di dover copiare l'elenco:

function toArray(l) {
    var a= [];
    for (var i= 0; i<l.length; i++)
        a[i]= l[i];
    return a;
}

var tables= toArray(document.getElementsByTagName('table'));
for (var i= 0; i<tables.length; i++)
    ...

Se stai usando jQuery è abbastanza facile ...

$(document).ready(function() {
  $("table").remove();
});

non sono sicuro di come lo fai in altre librerie.

se non stai usando una libreria js, dovresti esserlo.

o

function myF() {
    this.checkChild = function(tagN, node) {
        if (node.tagName.toLower() == tagN.toLower()) {
            node.parentNode.removeChild(node);
        }
        else {
            var i;
            for(i = 0; i < node.childNodes.length; i++)
                this.checkChild(tagN, node.childNodes[i]);
        }
    }
}

Utilizzo:


var m = new myF();
m.checkChild("The name of the tagname. This case: table", document.body); 
 

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top