JavaScript 中的 ReplaceAll() 未能在 HTML 页面中找到 </em>
P粉323224129
P粉323224129 2024-03-30 15:06:51
0
1
388

我不熟悉 JavaScript 和 html。但我尝试使用 JavaScript 实现一个函数。

我想替换html页面中的所有<em></em>。于是我在页面中插入一段javascript代码:

function rep() 
{
    document.body.innerHTML
        = document.body.innerHTML
        .replaceAll("<em>", "_");
    document.body.innerHTML
        = document.body.innerHTML
        .replaceAll("</em>", "_");

}
window.onload=rep()
<!DOCTYPE html>
<html lang="en">
<!-- ... -->
<article>
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1 post-container">

                <p>(Weierstrass) 设 $z_{0}$ 是 $f$ 的本性奇点,那么对任意 $A \in \mathbb{C}<em>{\infty}$, 必存在趋于 $z</em>{0}$ 的点列 $\left{z_{n}\right}$, 使得 $\lim <em>{n \rightarrow \infty} f\left(z</em>{n}\right)=A$.</p>

            </div>
        </div>
    </div>
<!-- ... -->

</html>

成功将<em>替换为“_”,但所有</em>都没有改变。代码有什么问题吗? 谢谢!

P粉323224129
P粉323224129

全部回复(1)
P粉926174288

让我们看看当浏览器看到无效的 html 时会发生什么,例如:

test

console.log(document.body.innerHTML)
test

上面打印 test (和脚本)

这是因为浏览器在解析时去掉了无效的结构

当你这样做时

document.body.innerHTML
  = document.body.innerHTML
  .replaceAll("", "_");

您正确替换了所有 <em> 标签,但结束标签被删除

另一方面,这也将起作用:

document.body.innerHTML = document.body.innerHTML
  .replaceAll("", "_")
  .replaceAll("", "_");
test
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板