gpt4 book ai didi

javascript - 使用部分替换存储为字符串的html元素

转载 作者:行者123 更新时间:2023-11-30 09:30:52 24 4
gpt4 key购买 nike

我正在使用 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);

最佳答案

你没有得到任何东西,因为你的链接 href 属性没有正确结束,最后缺少一个 ",如果你修复它,一切都会好起来的.

否则,如果您不使用 HTML 和 DOM,则可以将 HTML 字符串附加到临时 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']");
console.log(links);

注意:

要在 nodejs 环境中使用此代码,您需要使用 DOM 解析器模块,这些模块可以帮助您:

关于javascript - 使用部分替换存储为字符串的html元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46369992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com