@zekin375

Как вставить ссылки в текст?

В JS вообще не чего не понимаю по этому не бейте сразу палками. Помогите пожалуйста.

Есть масив php $element;
[0] => Array
(
[ID] => 5335
[NAME] => провод
[DETAIL_PAGE_URL] => /provoda/
[TEGI] => провода;проводов;
)

Есть к примеру текст на странице:
Данный провод отлично подойдет для подключения проводов.

Требуется через js найти в тексте слова из массива NAME и TEGI если встретится соответствия проставить ссылки в текст, в итогде должно получится:

Данный провод отлично подойдет для подключения проводов.
  • Вопрос задан
  • 546 просмотров
Решения вопроса 1
fomenkogregory
@fomenkogregory
Юниор софтварный инженер
const items = [
  {
    id: 1,
    name: 'провод',
    url: 'provod',
    tags: ['провода', 'проводов']
  },
  {
    id: 2,
    name: 'робот',
    url: 'robot',
    tags: ['роботы', 'роботов']
  },
]

const element = document.querySelector('ТУТ') // здесь пишешь css-селектор элемента который хочешь изменить

element.innerHTML = element.textContent
  .split(/\s/)
  .map(word => {
      const matchedItem = items.find(item => [item.name, ...item.tags].includes(word)) 
      return matchedItem ? `<a href='${matchedItem.url}'>${word}</a>` : word
  })
  .join(' ')

Если внутри элемента не только текст, то с innerHTML будут проблемы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Используйте for() для перебора свойств объекта и replace() для замены слов на те же слова, но уже со ссылкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы