JS:替换标签的innerHTML

JS: Replace innerHTML of tags

本文关键字:innerHTML 标签 替换 JS      更新时间:2023-09-26

我的应用程序从我的网站动态获取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>

我现在需要的是一个脚本,所有的标签,并取代他们的innerHTML与"LINK"。结果应该是:

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。

我不用PHP。我使用任何类型的JS来帮助我。什么好主意吗?非常感谢您的帮助!

这是使用jQuery的方法:

$('a').text('LINK');
使用jQuery的。text() 例如:

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

在js脚本中尝试此代码

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

并像这样使用

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

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

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

这样做需要某种正则表达式模式,如

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

,然后使用string。替换传入RegExp对象

之类的
var regex = new RegExp(pattern);
"yourString".replace(regex , "LINK");

如果你得到那些标记作为字符串,而不是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>=9中使用