首頁  >  問答  >  主體

JavaScript 中的 ReplaceAll() 未能在 HTML 頁面中找到 </em>

我不熟悉 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粉323224129P粉323224129202 天前332

全部回覆(1)我來回復

  • P粉926174288

    P粉9261742882024-03-31 12:56:14

    讓我們看看當瀏覽器看到無效的 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

    回覆
    0
  • 取消回覆