Jquery - 如何替换 div 中的一个词?
Jquery - How to replace one word in a div?
我有一个 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() 行上中断。我假设它因为 'text' 中的换行符而中断,但我不确定该怎么做。
你可以这样做:
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";
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);
<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>
你可以获取div
的lastChild
,然后使用replaceChild
插入你想要的新文本:
document.querySelector('button').addEventListener('click', function() {
var div = document.querySelector('.dealer-addy');
var newEmail = 'vitor@whosebug.com';
div.replaceChild(document.createTextNode(newEmail), div.lastChild);
});
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
<button>Replace email</button>
这应该可以满足您的要求(email@aol.com 将替换为 newemail@gmail.com)。工作 fiddle:http://jsfiddle.net/bay44km4/3/
HTML:
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
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);
}
我有一个 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() 行上中断。我假设它因为 'text' 中的换行符而中断,但我不确定该怎么做。
你可以这样做:
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";
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);
<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>
你可以获取div
的lastChild
,然后使用replaceChild
插入你想要的新文本:
document.querySelector('button').addEventListener('click', function() {
var div = document.querySelector('.dealer-addy');
var newEmail = 'vitor@whosebug.com';
div.replaceChild(document.createTextNode(newEmail), div.lastChild);
});
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
<button>Replace email</button>
这应该可以满足您的要求(email@aol.com 将替换为 newemail@gmail.com)。工作 fiddle:http://jsfiddle.net/bay44km4/3/
HTML:
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
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);
}