Reputation: 23662
As a mere example, I want to apply the class "fancy
" to all occurrences of the sign "&
" in the document.
The CSS:
.fancy { font-style: italic; }
So a text that looks like this:
Ben & Jerry's
would be manipulated by jquery to this:
Ben <span class="fancy">&</span> Jerry's
Is there a function to target specific words/phrases/letters like this?
Upvotes: 4
Views: 8843
Reputation: 413727
There's a "highlight" plugin that does almost exactly what you describe:
Upvotes: 2
Reputation: 704
Regex is commonly used for this:
http://chirale.wordpress.com/2009/07/04/character-substitution-on-jquery/
http://forum.jquery.com/topic/how-to-select-specific-characters-and-replace-them
Upvotes: 1
Reputation: 108256
This isn't something that jQuery is generally helpful with--it works more at the node level than the text/html level. However, this might help (source):
$('p:contains(&)').each(function(){
$(this).html(
$(this).html().replace('&','<span class=\'fancy\'>&</span>')
);
});
Obviously if you can restrict the initial search to something better than all paragraphs, it'd perform better. You should also test it to see if the :contains
filter actually helps.
It's not pretty but it seems to work.
Upvotes: 5