Javascript 如何将转换后的文本字符串恢复为原始HTML布局?

Javascript 如何将转换后的文本字符串恢复为原始HTML布局?,javascript,jquery,html,split,jquery-selectors,Javascript,Jquery,Html,Split,Jquery Selectors,这个问题来自于人们公认的答案 下面的代码将检测中的特定单词,将检测到的单词更改为另一个单词,然后使用.text()方法呈现中的所有内容。尽管这是一个可行的解决方案,但是否有一种方法可以自动将文本字符串转换回原始HTML布局格式,同时保留新创建的文本字符串 也就是说,新的输出应该保持换行符,但不应该仅限于这些换行符(应该保留所有HTML) HTML: <div class="dealer-addy"> 8726 N. Royal Ln<br> Irving,

这个问题来自于人们公认的答案

下面的代码将检测
中的特定单词,将检测到的单词更改为另一个单词,然后使用
.text()
方法呈现
中的所有内容。尽管这是一个可行的解决方案,但是否有一种方法可以自动将文本字符串转换回原始HTML布局格式,同时保留新创建的文本字符串

也就是说,新的输出应该保持换行符,但不应该仅限于这些换行符(应该保留所有HTML)

HTML:

<div class="dealer-addy">
    8726 N. Royal Ln<br>
    Irving, TX  75063<br>
    email@aol.com
</div>
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 new@email.com
8726 N. Royal Ln<br/>
Irving, TX 75063<br/>
new@email.com
输出:

<div class="dealer-addy">
    8726 N. Royal Ln<br>
    Irving, TX  75063<br>
    email@aol.com
</div>
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 new@email.com
8726 N. Royal Ln<br/>
Irving, TX 75063<br/>
new@email.com
所需输出:

<div class="dealer-addy">
    8726 N. Royal Ln<br>
    Irving, TX  75063<br>
    email@aol.com
</div>
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 new@email.com
8726 N. Royal Ln<br/>
Irving, TX 75063<br/>
new@email.com

8726北皇家Ln
德克萨斯州欧文75063
email@aol.com
您应该使用jQuery.html而不是文本

var text = $(".dealer-addy").html(); 

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").html();

value = value.replace(email, "new@email.com"); 
$(".dealer-addy").html(value);

谢谢,这样做既快捷又高效。通常,您是否有一个经验法则来知道何时使用.html()和何时使用.text()?$.html()提供实体下面的整个html代码,$.text()“获取匹配元素集中每个元素的组合文本内容,包括它们的子代。”->但不是html标记。因此,如果您想保留HTML标记,请使用HTML,如果您只希望使用文本,请使用文本。