Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    [JQuery] Cercare un testo nel body che non sia codice html e sostituirlo con altro testo

    Ciao a tutti,

    sto impazzando per trovare una soluzione al mio problema.

    avrei bisogno di cercare del testo all'interno della mia pagina html e sostituirlo con dell'altro testo tramite JQuery.
    come faccio a percorrere tutti i tag html all'interno del tag BODY e sostituire le ricorrenze trovate?

    Ammettiamo di avere:
    codice HTML:
    <html>
    <head></head>
    <body>
    <div class="nomeContenitore">
             <div id="nome"> nome: Roberto</div>
             <div id="citta"> nome citta: new york</div>
    </div>
    <ul>
     <li><nome>nome 1</nome></li>
     <li><nome>nome 2</nome></li>
    </ul>
    
    </body>
    </html>
    Ammettiamo di voler sostituire tutte le stringhe 'nome' con 'XXXXX'
    Come posso cambiare SOLO il testo all'interno dei tag e non i nomi dei tag stessi, delle classi e degli id?

    Che il codice html risultante sia:
    codice HTML:
    <html>
    <head></head>
    <body>
    <div class="nomeContenitore">
             <div id="nome"> XXXXX: Roberto</div>
             <div id="citta"> XXXXX citta: new york</div>
    </div>
    <ul>
     <li><nome>XXXXX 1</nome></li>
     <li><nome>XXXXX 2</nome></li>
    </ul>
    
    </body>
    </html>

    Ho provato a seguire la strada di selezionare tutti gli elementi del body:
    $("body *").each()
    per ogni elemento sostituire il testo e riassegnarlo a $(this)
    Il problema è che mi cambia anche elementi che non sono testo ma codice html.


    Grazie,
    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho provato questo ma sparisce parte del codice html:
    codice HTML:
    <html>
    <head>
        <script src="https://code.jquery.com/jquery-1.11.3.min.js" type="text/javascript"></script>
    </head>
    <body>
    <div class="nomeContenitore">
             <div id="nome"> nome: Roberto</div>
             <div id="citta"> nome citta: new york</div>
    </div>
    <ul>
     <li>nome:<nome>1</nome></li>
     <li><nome>nome 2</nome></li>
    </ul>
    
    </body>
    <script>
        $("body *").each(function(){
            //alert($(this).text());
            $(this).text($(this).text().trim().replace(/nome/i, "xxxxx"));
            //alert($(this).text());
        });
    </script>
    </html>

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho risolto così:
    codice HTML:
    <html>
    <head>
        <script src="https://code.jquery.com/jquery-1.11.3.min.js" type="text/javascript"></script>
        <script>
    $(document).ready(function(){
    parola="nome";
    var patron = new RegExp("(?![^<]*>)"+parola, "g");
    
    html=$("body").html();
    alert(html.replace(patron, "xxxxx"));
    });
    </script>
    </head>
    <body>
    <div class="nomeContenitore">
             <div id="nome"> nome: Roberto</div>
             <div id="citta"> nome citta: new york</div>
    </div>
    <ul>
     <li>nome:<nome>1</nome></li>
     <li><nome>nome 2</nome></li>
    </ul>
    
    </body>
    
    </html>

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.