【发布时间】:2018-03-04 08:16:07
【问题描述】:
我正在使用 node.js 从 API 中提取 html,在显示之前将其存储在变量中。 我需要替换该 html 字符串中的链接,但我只能使用链接的前面部分进行搜索,因为它们是动态的。
我找到了一个使用document.querySelectorAll("a[href^='http://somelink.com/12345678']") 的示例
Javascript getElement by href?
但我没有使用 DOM。
需要删除/替换的动态链接:
<a href="http://somelink.com/12345678-asldkfj>Click Here</a>
<a href="http://somelink.com/12345678-clbjj>Click Here</a>
<a href="http://somelink.com/12345678-2lksjd>Click Here</a>
我可以搜索的内容:
<a href="http://somelink.com/12345678
我需要更改实际链接名称“单击此处”或删除该元素。
有什么想法可以用普通的 JS 来实现吗? 最初我在想也许有一种方法可以创建一个假/临时 DOM?
编辑: 用我的代码修改下面的答案,它完全符合我的需要。
var str = '<a href="http://somelink.com/12345678-asldkfj">Click Here</a><a href="http://somelink.com/12345678-clbjj">Click Here</a><a href="http://somelink.com/12345678-2lksjd">Click Here</a>';
var div = document.createElement("div");
div.innerHTML = str;
var links = div.querySelectorAll("a[href^='http://somelink.com/12345678']");
for(i=0; i<links.length; i++) {
if(links[i]) {
str = str.replace(links[i].outerHTML, 'New Name');
}
}
console.log(str);
【问题讨论】:
标签: javascript html node.js string dom