JS:替换标签的innerHTML

时间:2013-05-24 11:38:38

标签: javascript string replace tags

我的应用程序从我的网站动态获取HTML代码并将其保存为字符串。

以下是一个例子:

Lorem ipsum <a href="http://www.google.com">Click Here</a>
Lorem ipsum <a href="http://www.google.com">Click Somewhere</a>
Lorem ipsum <a href="http://www.google.com">sdfsdf</a>
Lorem ipsum <a href="http://www.google.com">djmhfhb</a>
Lorem ipsum <a href="http://www.google.com">fgbnfgn</a>

我现在需要的是一个脚本,它接受所有标签并用“LINK”替换他们的innerHTML。结果应该是:

Lorem ipsum <a href="http://www.google.com">LINK</a>
Lorem ipsum <a href="http://www.google.com">LINK</a>
Lorem ipsum <a href="http://www.google.com">LINK</a>
Lorem ipsum <a href="http://www.google.com">LINK</a>
Lorem ipsum <a href="http://www.google.com">LINK</a>

我通常会使用这样的jQuery:

$(a).html = "Link"

但是我不想删除我的应用程序中链接的innerHTML,而是删除包含我网站HTML的String内的链接。

我不使用PHP。我使用任何一种帮助我的JS。 有任何想法吗?非常感谢你的帮助!

5 个答案:

答案 0 :(得分:0)

这是你用jQuery做到的:

$('a').text('LINK');

答案 1 :(得分:0)

使用jQuery的.text()

例如:

$("a").text("LINK");

答案 2 :(得分:0)

在js脚本中尝试此代码 在锚标记上给出id

<a href="www.google.com" id="hello" />Click<a>    

并像这样使用

$('#hello').html('LINK');

$('a').text('LINK');

答案 3 :(得分:0)

目前还不清楚为什么你不想在你的应用中使用jQuery .html()或.text()而是操纵包含html的字符串呢?

这样做需要某种类型的正则表达式

var pattern = "<a .*?href=['""](.+?)['""].*?>(.+?)</a>";

然后使用string.Replace传入一个RegExp对象

这样的东西
var regex = new RegExp(pattern);
"yourString".replace(regex , "LINK");

答案 4 :(得分:0)

IF 您将这些标记作为字符串,而不是DOM片段,您可以尝试这样做:

http://jsfiddle.net/YVb5k/

var str="HTML markup";
if ((new DOMParser()).parseFromString("", "text/html")) {
    var html = (new DOMParser()).parseFromString(str, "text/html");
} else {
    var html = document.implementation.createHTMLDocument("");
    html.body.innerHTML = str;
}
var as = html.getElementsByTagName("a");
for (var i = 0; i < as.length; i++) {
    as[i].innerHTML = "LINK";
}
console.log(html.body.innerHTML);

仅适用于IE&gt; = 9。