2013-08-30 2 views
0

Я смутился, и мне нужна ваша помощь, как? ЕслиКак найти определенный текст с jQuery и стиль их

<pre>Lorem Ipsum Dolor Sir amet</pre> 

и я хочу, чтобы текст «ipsum» окрашен в желтый цвет.

+2

Отправьте код, который вы уже пробовали. – j08691

+0

Возможный дубликат [Выделить слово с помощью jQuery] (http://stackoverflow.com/questions/119441/highlight-a-word-with-jquery) – Yeronimo

+1

Вы не можете выделить текстовый узел, вам нужно его обернуть другой элемент, например 'span' –

ответ

1

Запустите небольшую функцию замены, чтобы программно изолировать ваше целевое слово, в данном случае второе слово. Вы также можете подменить это значение для жесткого кодирования, если вы всегда знаете, какое слово вы нацеливаете.

HTML

<pre>Lorem Ipsum Dolor Sir amet</pre> 

CSS

span { background: yellow; } 

JQuery

$('pre').html(function(i, word) { 
    return word.replace(/\s(.*?)\s/, ' <span>$1</span> '); 
}); 

Codepen example

+1

Если вы используете downvote, пожалуйста, пример почему. Ты тролль? Я так считаю. – kunalbhat

+1

Я поднял все три замечательных ответа, чтобы компенсировать тайну downvoter – KyleMit

3

Попробуйте создать тег span и wrap ваш контент в этом.

$('pre:contains(Ipsum)').each(function(){ 
    $(this).html(
    $(this).html().replace('Ipsum ','<span class="colorClass"> Ipsum </span>') 
); 
}); 

Working Demo

+1

@downvoter, можете ли вы объяснить, почему этот downvote? –

+1

Я поднял все три замечательных ответа, чтобы компенсировать тайну downvoter – KyleMit

2

вы не можете выделить текстовый узел, необходимо обернуть его в другой элемент, как span затем использовать его, чтобы применить Изюминкой

$('pre').html(function(idx, html){ 
    return html.replace(/(Ipsum)/, '<span class="highlight">$1</span>') 
}) 

Демо: Fiddle

+1

@downvoter все, что я пропустил –

+1

Я поднял все три замечательных ответа, чтобы компенсировать тайну downvoter – KyleMit

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