我不熟悉 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粉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