Trovare un DIV non sapendo quanti DIV ci sono in mezzo

di SirJo il
8 risposte

Ciao a tutti,
ho un codice HTML come questo:

<div class="one">
    <div role="gridcell" class="two">
        <div class="three">
            <div class="four">
                <span dir="auto" class="five">Customer Name</span>
            </div>
        </div>
        <div class="six">
            <span class="seven">yesterday</span>
        </div>
    </div>
    <div class="eight">
        <div class="nine">
            <span class="ten">
                <div class="eleven">This is my text</div>
            </span>
        </div>
        <div role="gridcell" class="twelve">
            <span class=""/>
            <span class=""/>
            <span class="">
                <button class="buttonClass">
                    <span class="">
                        <!-- other code... -->
                    </span>
                </button>
            </span>
        </div>
    </div>
</div>

e devo estrarre il testo “This is my text”
visto che i nomi delle classi NON le conosco prima, mi ricavo l'oggetto <div role="gridcell"> (con un filtro “div[role='gridcell']”)
poi tramite parentElement risalgo al <div class="one">
(e fino a qui funziona)
ma ora, non sapendo quanti <div> ci sono dentro a <div role="gridcell" class="two">, come faccio a saltare direttamente a <div class="eight"> ???
Grazie mille
Sergio

8 Risposte

  • Grazie mille del tuo intervento, ma purtroppo NON conosco i nomi delle classi

  • L'html ha una struttura “fissa” che conosci ?

    il testo che devi estrarre ha delle parti fisse che conosci?

  • No, il problema è proprio quello, che non ha struttura fissa (nel senso che non so quanti sotto-div ci sono)
    Le uniche parti fisse sono quei due div con role="gridcell"

    Io pensavo che ci fosse un sistema per navigare nella struttura dell'HTML, come faccio di solito con la struttura XML

    Per ora ho risolto trovando il secondo div con role="gridcell" e tornando in su di un livello, però non mi piace molto

  • Navigare puoi navigare anche l'html

    https://www.w3schools.com/js/js_htmldom_navigation.asp

     ma come fai a trovare un testo di cui non conosci il valore ne la posizione nel documento ?

  • RISOLTO !!!!

    ho trovato che per navigare secondo la struttura si deve usare “element.children”

    grazie mille comunque del tuo interessamento

  • Ciao sirjo , potresti postare la soluzione ,non ho capito come hai fatto  :-) , grazie

  • Ho fatto così:

    document.querySelector("div[role='gridcell']").parentElement.children[1].innerText
    1. mi ricavo il div con role='gridcell' (cioè la div con class="two")
    2. salgo al “parent”, cioè la div con class="one"
    3. mi prendo il secondo figlio (cioè il div con class="eight")
    4. mi ricavo l'innerText, cioè “This is my text”
Devi accedere o registrarti per scrivere nel forum
8 risposte