Сделайте все экземпляры части слова курсивом

0

Я использую expressionengine как CMS, после того, как страница загружена, мне нужно найти "arbesthealth" и сделать это лучшим * здоровьем, что было бы лучшим способом сделать это? JQuery после того, как документ готов? это можно сделать с помощью CSS?

примечание: я не могу сделать это на стороне cms, потому что EE не разрешает теги внутри полей заголовка, поэтому это нужно делать на выходе. Думаю, я мог бы сделать это с помощью substr в php, но мне просто интересно, как это будет возможно.

Теги:
expressionengine

2 ответа

1

Оберните тег внутри слова следующим образом:

$('.content').wrapInTag({
    words: ['best'],
    tag: '<span>'
});

См. FIDDLE

Я добавил в .content, но вы можете добавить его везде, где cms имеет контейнер


* ОБНОВЛЕНИЕ *

Как уже упоминалось, это повлияет на все, поэтому попробуйте этот метод:

html().replace

КОНКРЕТНЫЙ ФИДДЛ

  • 1
    Это уничтожит любые обработчики событий, назначенные элементам с помощью jQuery или addEventListener до его запуска. Так что это должно быть первым делом, прежде чем что-либо подключит какие-либо обработчики.
  • 0
    Мне это действительно нравится, но как я могу изменить это так, чтобы оно не нашло слово «лучший», если оно не встречается в арбестезиологии?
Показать ещё 2 комментария
1

Простым решением было бы манипулировать innerHTML (напрямую или через jQuery html функцию), но это уничтожит и воссоздает все элементы, что не является идеальным - не в последнюю очередь потому, что любые обработчики событий, прикрепленные к ним, будут удалены.

Но простая рекурсивная функция обработки текстовых узлов и вставка strong элементов по мере необходимости не составляет труда. Мой ответ на этот другой вопрос SO показывает, как это сделать, проходя через текстовые узлы и используя Text#splitText чтобы разделить их и вставить элементы. Звучит намного больше, чем есть.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню