Jquery – Come sostituire una parola in un div?

Ho un div che viene copiato da un’altra posizione, e ho bisogno di cambiare una parola al suo interno. Questo è l’html:

8726 N. Royal Ln
Irving, TX 75063
[email protected]

Ho bisogno di cambiare l’indirizzo email, quindi sto cercando di ottenere il testo all’interno del div e dividere la stringa in parole, quindi modificare l’indirizzo email. Tuttavia, ho problemi a lavorare con il testo interno.

Questo è il mio script:

 var address = $dealerInfo.find(".dealer-addy"); var text = $(address).text(); text = text.replace(/\r?\n|\r/, " "); var words = $(text).split(" "); 

Si è verificato su split (), quindi ho aggiunto la riga replace () e ora si interrompe sulla riga replace (). Presumo che si stia rompendo a causa delle interruzioni di riga in ‘testo’, ma non sono sicuro di cosa fare.

 var text = $(".dealer-addy").text(); function extractEmails ( text ){ return text.match(/([a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi) ; } var email = extractEmails(text); var value = $(".dealer-addy").text(); value = value.replace(email, "[email protected]"); $(".dealer-addy").text(value); 
  
8726 N. Royal Ln
Irving, TX 75063
[email protected]

Puoi ottenere l’ lastChild di div e usare replaceChild per inserire il nuovo testo che desideri:

 document.querySelector('button').addEventListener('click', function() { var div = document.querySelector('.dealer-addy'); var newEmail = '[email protected]'; div.replaceChild(document.createTextNode(newEmail), div.lastChild); }); 
 
8726 N. Royal Ln
Irving, TX 75063
[email protected]

Puoi fare qualcosa del genere:

Javascript:

 var orignalstring = document.getElementById("dealer-addy").innerHTML; var newstring = orignalstring.replace("[email protected]","replaced"); document.getElementById("dealer-addy").innerHTML = newstring; 

html:

 
8726 N. Royal Ln
Irving, TX 75063
[email protected]

Ma se non sai quale sia l’indirizzo email che stai cercando di sostituire, potresti fare meglio a fare questo:

html:

 
8726 N. Royal Ln
Irving, TX 75063
[email protected]

Javascript:

 document.getElementById("email").innerHtml = "new email"; 

Questo dovrebbe fare ciò che vuoi ([email protected] sarà sostituito da [email protected]). Working fiddle: http://jsfiddle.net/bay44km4/3/

HTML:

 
8726 N. Royal Ln
Irving, TX 75063
[email protected]

Javascript:

 var dealerAddressHtml = $(".dealer-addy").html(); var dealerAddressArr = dealerAddressHtml.split("\n"); if (dealerAddressArr.length >=3){ var emailAddress = dealerAddressArr[3]; dealerAddressHtml = dealerAddressHtml.replace(emailAddress, "[email protected]"); $(".dealer-addy").html(dealerAddressHtml); }