簡體   English   中英

如何替換 HTML 頁面中字符串的第一個實例?

[英]How would I replace the first instance of a string in an HTML page?

我是一名技術作家,在我的工作中我們遇到了很多內容重用的情況。 寫出像“超文本標記語言(HTML)”這樣的第一個實例是標准的,並且從那時起只使用 HTML。 但是,如果我經常重復使用文本塊,就很難始終如一地做到這一點。 我想每次都簡單地寫下首字母縮略詞,然后在頁面加載時,通過 JS 將第一個實例替換為完整的短語。

我嘗試了這個我在網上找到的腳本,但它不起作用並在 chrome 開發人員工具中生成錯誤(TypeError:“body”。html 不是函數):

var replaced = ("body").html().replace('HTML', 'Hypertext Markup Language');
$("body").html(replaced);

這個腳本是錯誤的還是我遺漏了什么?

這個怎么樣:

function textNodesUnder(el){
  var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false);
  while(n=walk.nextNode()) a.push(n);
  return a;
}

function replaceAllInPage(oldStr, newStr) {
  textNodesUnder(document.body).forEach(node => {
    node.textContent = 
      node.textContent.replaceAll(oldStr, newStr);
  });
}

replaceAllInPage('HTML', 'Hypertext Markup Language');

textNodesUnder 由 Phrogz 設計

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM