gpt4 book ai didi

javascript - 在 DOM 错误中查找全部替换

转载 作者:行者123 更新时间:2023-11-30 10:04:05 25 4
gpt4 key购买 nike

我正在尝试查找所有出现的 ?sid=XXXXXXXXXX 并将它们替换为 blank。我在页面的其他地方使用相同的代码来查找和替换电话号码(例如)。

我正在执行以下命令:

document.body.innerHTML = document.body.innerHTML.replace(/?sid=XXXXXXXXXX/g, '');

它应该编辑的 HTML 示例是:

<a href="/faqs/?sid=XXXXXXXXXX">Frequently Asked Questions</a>

但是我得到以下错误:

Uncaught SyntaxError: Invalid regular expression: /?sid=XXXXXXXXXX/: Nothing to repeat

我不明白为什么它适用于其他字符串而不是这个字符串。我知道上面基本上是将 DOM 内容视为一个长文本字符串,因此查找和替换应该像在电话号码示例中那样操作。我错过了什么?非常感谢您的帮助!

最佳答案

不要使用 innerHTML replace 替换 body 元素的内容,它可能会产生副作用,例如可以删除任何已注册的事件处理程序等....而是定位并替换所需的内容

var as = document.querySelectorAll('a[href*="?sid=XXXXXXXXXX"]');
for (var i = 0; i < as.length; i++) {
var href = as[i].getAttribute('href');
as[i].setAttribute('href', href.replace(/\?sid=XXXXXXXXXX/g, ''));
}

演示:Fiddle

关于javascript - 在 DOM 错误中查找全部替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30205502/

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