2010-02-06 3 views
5

Я хотел бы узнать наиболее удобный способ обернуть некоторые указанные слова с помощью тегов span.Оберните несколько указанных слов пробелом в jQuery?

Пример: У меня есть слово, которое является собакой. Вот оригинальный текст:

I have a dog, do you have a dog? 

И результат должен быть таким:

I have a <span class="highlight">dog</span>, do you have a <span class="highlight">dog</span>? 

Любая помощь?

EDIT: Обратите внимание, что он также должен обертывать слова, даже если они не являются интуитивными (Peter-dog). Надеюсь, вы поняли.

+1

пожалуйста, когда задают вопросы, воздерживаться от ограничения вашего права собственности на решение JQuery, JQuery не язык, JS является, таким образом, решение должно быть в JavaScript. – vsync

ответ

3

Полезная информация jQuery plugin.

Это действительно прост в использовании, и он отлично работает.

— Это очень старый ответ. Я сожалею, что просто связал библиотеку Lettering.js без включения ее имени. Библиотека полезна, хотя я не уверен здесь через 7 лет, продолжает ли г-н Руперт активно ее поддерживать.

Что такое надпись - это переходы между текстовыми узлами в выбранной области DOM и обертывание отдельных букв и/или слов (настраиваемых) в тегах <span>, которые затем могут быть оформлены в стиле. Это просто, но эффективно. Даже если вы не хотите его использовать, код не очень обширен и учебный.

+1

Нет необходимости использовать tinyurl в StackOverflow, для чего нужен Markdown. –

+0

Спасибо, проста в использовании! –

4

Вы можете использовать JavaScript replace function. Вот простой пример:

$('#container').html($('#container').html().replace(/(dog)/g,'<span class="highlight">$1</span>')); 
+0

.val() должен работать только с элементами формы. Вам нужен .text() здесь - если я не ошибаюсь. – onigunn

+0

вы не ошибаетесь - этот ответ на самом деле не будет работать, учитывая исходный вопрос, который касается слов в тексте, а не в элементах формы. Даже тогда размещение меток span внутри значений элемента формы не будет работать в любом случае. – Pointy

+1

Собственно, это html(). Код исправлен и протестирован. –

Смежные вопросы