Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Accedere ad un textNode

    Salve a tutti non riesco a capire perchè non mi funziona il seguente script per la manipolazione del DOM.

    Ho il seguente frammento di HTML (che non posso modificare perchè mi occupo solo della parte lato server in questo lavoro)
    codice:
    
    
     <input type="text" name="username" id="username" class="validate[required] text-input" value="" size="22" />
    <label for="username">Username <span class="red"> *</span></label>
    </p>
    Ed ho scritto il seguente script javascript che mi deve sovrascrivere il testo contenuto nel tag small.
    codice:
    var input = document.getElementById("username");
    var label = input.nextSibling;
    var small = label.firstChild;
    var testo = small.firstChild;
    small.removeChild(testo);
    var newText = createTextNode(nome);
    small.appendChild(newText);
    logicamente non funziona e non capisco perchè, qualcuno può darmi una dritta?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ma non puoi recuperarti direttamente il tag small con la funzione document.getElementsByTagName?

  3. #3
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Certo che potrei farlo ma non risolve di certo il problema che ho.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    no?

    codice:
    
    
     <input type="text" name="username" id="username" class="validate[required] text-input" value="" size="22" />
    <label for="username">Username <span class="red"> *</span></label>
    </p>
    
    var small = document.getElementsByTagName("small");
    small[0].innerHTML = "Ciao";
    Ti ho chiesto se puoi usarlo perche potresti avere piu tag small e non sapere come identificarli, un metodo potrebbe essere questo if(small[i].firstChild.nodeValue == "Username") cioè verifico se all'interno del tag small ci sia il testo corretto. Ovvimanete se ci sono piu tag small devi prima farti un ciclo.

    Se invece vuoi mantenere il tuo codice devi modificare la riga input.nextSibling con input.nextSibling.nextSibling. Altrimenti non vai a recuperare il tag "label" ma il textNode della casella di input


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.