Estrarre TAG, ID e CLASS da un sorgente HTML.

  • Creatore Discussione Creatore Discussione Biuni
  • Data di inizio Data di inizio

Biuni

Nuovo Utente
15 Set 2015
3
0
0
Ciao a tutti avrei bisogno del vostro aiuto.
Mi servirebbe una funzione (in Javascript, jQuery o anche PHP) che estrae i tag HTML, gli ID e le Classi di un qualsiasi testo sorgente di una pagina HTML.

In pratica:
Ho una textarea, ci copio incollo un sorgente HTML di una pagina web qualsiasi. Premo INVIO e a quel punto il risultato deve essere l'estrazione di tutti i TAG, gli ID e le Classi presenti in quel testo sorgente.

Esempio:
HTML:
<div id="one" class="ciao">Prova</div>

<section> <p class="testo">Ciao a tutti </p> </section>
Il risultato dovrà essere:
  • div
  • #one
  • .ciao
  • section
  • p
  • .testo

Spero di essere stato abbastanza chiaro. Grazie a chiunque mi aiuterà.
 
Ciao, ho scoperto anchio adesso che esiste la funzione parseHTML in jquery.
Ti butto giù una prima bozza da testare
Codice:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<ul id="result">

</ul>
<script>
    var str = '<div id="one" class="ciao">Prova</div><section><p class="testo">Ciao a tutti </p></section>';
    var html = $.parseHTML(str);
    
    getChildren(html);

    function getChildren(element){
        $.each(element, function( i, el ) {            
            $("#result").append("<li>" + el.nodeName + "</li>");
            if (typeof $(el).attr("id") !== typeof undefined) {
                $("#result").append("<li>#" + $(el).attr("id") + "</li>");
            }
            if (typeof $(el).attr("class") !== typeof undefined) {
                $("#result").append("<li>." + $(el).attr("class") + "</li>");
            }
            if(el.children.length > 0) {
                getChildren(el.children);
            }
        });
    }
</script>
ho dovuto usare una funzione ricorsiva perchè non ho ancora capito bene il meccanismo del metodo. Mi rileggerò con calma la documentazione, è molto interessante.
 
Ultima modifica:

Discussioni simili