Преобразование определенного текста (идентифицируемого на основе шаблона) в ссылку с помощью Javascript

#javascript

#javascript

Вопрос:

Следующий код, который у меня есть, ищет конкретный текст в DOM на основе шаблона. Вместо замены текста я хотел бы преобразовать его в ссылку, где текст является параметром в ссылке.

Допустим, ссылка будет выглядеть так: https://google.com/search?q=matched_text_added_here

 var allTextNodes = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT),
    // some temp references for performance
    tmptxt,
    tmpnode,
    // compile the RE and cache the replace string, for performance
    identify = /ABCd{7}/g,
    replaceValue = "changed";

// iterate through all text nodes
while (allTextNodes.nextNode()) {
    tmpnode = allTextNodes.currentNode;
    tmptxt = tmpnode.nodeValue;
    tmpnode.nodeValue = tmptxt.replace(identify, replaceValue);
}
 

Ответ №1:

Вместо замены текста я хотел бы преобразовать его в ссылку

Итак, вместо замены текста:

  1. создание ссылки
 let newLink = document.createElement('a')
 
  1. настройка ссылки
 newLink.href = 'https://google.com/search?q='   encodeURIComponent(nodeValue)
newLink.textContent = nodeValue
 
  1. замените текстовый узел узлом ссылки
 tmpnode.replaceWith(newLink)