Если элемент содержит определенный текст

$('.test').css('background','red');

<div id="example">Some text</div>

Как я могу .addClass('test') если #example содержит слово "текст"?

Ответ 1

просто используйте :contains псевдослот

$('#example:contains("text")').addClass('test');

это добавит класс к #example если он содержит "текст",

Ответ 2

Вы можете использовать $("#example") чтобы получить оболочку jQuery для элемента, а затем использовать text() для получения его текста и использовать String#indexOf, например:

var ex = $("#example");
if (ex.text().indexOf("text") !== -1) {
    ex.addClass("test");
}

Вы также можете использовать :contains("text") в селекторе, как показывает Ф. Кальдеран, хотя обратите внимание, что при использовании нестандартных псевдоселекторов, подобных этому, jQuery не может использовать встроенный материал браузера для поиска элементов, поэтому он может быть медленнее. Вышеупомянутое позволит jQuery использовать document.getElementById. Однако есть только несколько ситуаций, когда скорость действительно имеет значение.

Ответ 3

попробуйте следующий код

$('#example:contains("text")').addClass('test');

Посмотрите здесь примеры и объяснения :contains селектор