gpt4 book ai didi

javascript - 如何在不将所有 & 替换为 & 的情况下替换 href url

转载 作者:行者123 更新时间:2023-12-02 19:00:10 24 4
gpt4 key购买 nike

我正在尝试用页面加载时计算出的 URL 替换一些空的 href="" 语句。

但是,替换字符串包含多个 &,它们需要位于 href 中。

无论我尝试什么,只要使用 setAttribute("href", url);$(id).attr('href', url) ,所有 & 都被替换为 & 并且链接失败。

如何防止这种情况发生?我非常确定任何以 .href 结尾或包含 href 的代码都会经历翻译阶段,并且都会失败。

您可能已经注意到,我已经多次编辑此消息,因为您根本无法输入完整的“&”在此框中,也无需将其翻译为“&”。

最佳答案

让我们退一步,从头开始思考这个问题。转义序列 &xxx; 是将“特殊字符”嵌入到 HTML 文档中的方法。需要明确的是,它是一个 HTML 转义序列。

这种转义字符的方法非常有用,因为它意味着可以将字符放入 ASCII 文件中,否则将无法嵌入。

例如,可以使用表示其 Unicode 代码点 的数字代码嵌入欧元符号 ()。或者,可以使用其字符实体名称   嵌入不间断空格。 (旁白:这些字符更容易嵌入到 UTF-8 文件中,无需转义,但这不是这里的重点)

现在,因为这个转义序列总是以 & 符号开头,这意味着 HTML 文档中的裸 & 符号是不明确的 - 当浏览器读取文档时,它不知道您是否想要一个真正的 & 符号,或者是否有一个HTML 实体转义序列即将出现。为了消除这种歧义,如果您想在 HTML 文档中嵌入 & 符号,那么您需要对其进行转义。

让我强调一下这句话:要消除这种歧义,如果您想在 HTML 文档中嵌入 & 符号,那么您需要对其进行转义。

因为这种转义仅适用于 HTML 文档,如果您在 .js 文件中编写 Javascript,则此转义序列与您无关。您只需将&符号放入未转义的符号即可,没有问题。这意味着,您的 Javascript 文件可以用裸露的 & 符号替换 URL,无需 &

就浏览器而言,您编写的所有 URL 都只包含裸露的 & 符号。转义序列&只需要以HTML形式表达,一旦浏览器读取了HTML,转义序列就会被忘记。

我在这里重复了几次,但那是因为我已经尽力让它尽可能清楚。

关于javascript - 如何在不将所有 & 替换为 & 的情况下替换 href url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866132/

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