#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:
Вместо замены текста я хотел бы преобразовать его в ссылку
Итак, вместо замены текста:
- создание ссылки
let newLink = document.createElement('a')
- настройка ссылки
newLink.href = 'https://google.com/search?q=' encodeURIComponent(nodeValue)
newLink.textContent = nodeValue
- замените текстовый узел узлом ссылки
tmpnode.replaceWith(newLink)