我正在尝试在页面上查找文本(句子),然后用新文本替换它。如果要替换的文本只是文本,下面的代码可以正常工作。但是我还想在新文本中包含一个超链接。
原始文字:您似乎已进入此调查。 新文字:似乎有人有XYZ,要回到您的PP帐户,请使用以下网址:www.xyz.com
以下是我正在使用的代码示例
$ ("*").contents().each(function() {
if(this.nodeType == 3)
this.nodeValue = this.nodeValue.replace("Old text", "Please click this link");
});
如果我尝试将超链接标记添加到上面的文本""请单击此链接",它不会创建超链接,而是将其显示为带有html标记的文本
答案 0 :(得分:0)
但我还想在新文本中加入超链接。
首先清除现有的nodeValue
this.nodeValue = "";
现在创建一个新的锚元素
var aNode = document.createElement("a");
aNode.setAttribute( "href", "#" );
aNode.innerText = "Please click this link";
现在在aNode
节点
this
var nextNode = this.nextSibling;
var parentNode = this.parentNode;
parentNode.insertBefore( aNode, nextNode );
<强>样本强>
$("*").contents().each(function() {
if (this.nodeType == 3 && this.nodeValue.indexOf("Old text") > -1) {
this.nodeValue = "";
var aNode = document.createElement("a");
aNode.setAttribute("href", "#");
aNode.innerText = "Please click this link";
var nextNode = this.nextSibling;
var parentNode = this.parentNode;
parentNode.insertBefore(aNode, nextNode);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parentDiv">
<div>prev text</div>
Old text
</div>
&#13;