Jquery – 如何替换div中的一个单词?

我有一个从另一个位置复制的div,我需要更改其中的一个单词。 这是html:

8726 N. Royal Ln
Irving, TX 75063
email@aol.com

我需要更改电子邮件地址,所以我试图在div中获取文本并将字符串拆分为单词,然后更改电子邮件地址。 但是,我在使用内部文本时遇到了麻烦。

这是我的脚本:

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

它在split()上打破了,所以我添加了replace()行,现在它在replace()行中断了。 我认为它因“文本”中的换行符而中断,但我不知道该怎么做。

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

您可以获取divlastChild ,并使用replaceChild插入所需的新文本:

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

你可以这样做:

使用Javascript:

 var orignalstring = document.getElementById("dealer-addy").innerHTML; var newstring = orignalstring.replace("email@aol.com","replaced"); document.getElementById("dealer-addy").innerHTML = newstring; 

HTML:

 
8726 N. Royal Ln
Irving, TX 75063
email@aol.com

但是,如果您不知道要替换的电子邮件地址是什么,那么最好这样做:

HTML:

 
8726 N. Royal Ln
Irving, TX 75063
email@aol.com

使用Javascript:

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

这应该做你想要的(email@aol.com将替换为newemail@gmail.com)。 工作小提琴: http : //jsfiddle.net/bay44km4/3/

HTML:

 
8726 N. Royal Ln
Irving, TX 75063
email@aol.com

使用Javascript:

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