Reputation: 5025
$('.test').css('background','red');
<div id="example">Some text</div>
How can I .addClass('test')
if #example
contains the word "text"?
Upvotes: 15
Views: 26725
Reputation: 12390
try the following code
$('#example:contains("text")').addClass('test');
Have a look here for examples and explanations of the :contains
selector
Upvotes: 1
Reputation: 1073968
You can use $("#example")
to get a jQuery wrapper for the element, then use text()
to get its text, and use String#indexOf
, e.g.:
var ex = $("#example");
if (ex.text().indexOf("text") !== -1) {
ex.addClass("test");
}
You can also use :contains("text")
in the selector as F. Calderan shows, although note that when you use non-standard pseudo-selectors like that, jQuery can't use the underlying browser's built-in stuff for finding elements, so it can be slower. The above will allow jQuery to use document.getElementById
. There are only a few situations where the speed really matters, though.
Upvotes: 6
Reputation: 123367
just use :contains
pseudoclass
$('#example:contains("text")').addClass('test');
this will add the class to #example
if it contains 'text'
Upvotes: 20