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

时间:2015-10-06 17:18:55

标签: javascript jquery html split jquery-selectors

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

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

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

这是我的剧本:

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

它在split()上打破了,所以我添加了replace()行,现在它在replace()行中断了。我认为由于文字中的换行符而导致其中断,但我不知道该怎么做。

3 个答案:

答案 0 :(得分:4)

&#13;
&#13;
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);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div class="dealer-addy">
    8726 N. Royal Ln<br>
    Irving, TX  75063<br>
    email@aol.com
</div>
&#13;
&#13;
&#13;

以下是演示:http://jsfiddle.net/VS7Qe/166/

答案 1 :(得分:2)

您可以获取lastChild的{​​{1}},并使用div插入所需的新文字:

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);
});

答案 2 :(得分:0)

您可以这样做:

<强>使用Javascript:

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

<强> HTML

<div id="dealer-addy">
    8726 N. Royal Ln<br>
    Irving, TX  75063<br>
    email@aol.com
</div>

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

<强> HTML

<div class="dealer-addy">
    8726 N. Royal Ln<br>
    Irving, TX  75063<br>
    <span id="email">email@aol.com</span>
</div>

<强>使用Javascript:

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