Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Поиск элементов по их контенту


Автор: JAYBE 14.8.2012, 10:54
Добрый день. Необходимо найти все элементы, содержащие в себе текст.
Воспользоватсля 
Код

$(":contains('текст')")

, но он выводитдаже роительысике элементы.
Как сделать так, чтобы выводился только тот элемент, который напрямую сожержит в себе текст, а не включая его "родителей"?

Автор: нуп 14.8.2012, 11:44
$('#elem').find(":contains('текст')");

Автор: ksnk 14.8.2012, 12:01
Код

$(":contains('текст')").not(":has(:contains('текст))")

Хотя для больших текстов я бы потестировал - насколько такая простота будет быстрой.

Автор: JAYBE 15.8.2012, 10:15
Цитата(ksnk @ 14.8.2012,  12:01)
Код

$(":contains('текст')").not(":has(:contains('текст))")

Хотя для больших текстов я бы потестировал - насколько такая простота будет быстрой.

Спасибо. Можешь объяснить выполнения?

Автор: ksnk 15.8.2012, 10:50
Первый селектор объяснять не надо? ;)

Цитата(JAYBE @  15.8.2012,  10:15 Найти цитируемый пост)
.not(":has(:contains('текст'))")

Кавычка упущена :( 

Второй селектор выкидывает из элементов, найденных первым оператором, все, которые содержат элементы (:has) имеющие подстроку `текст`. Таким образом, остаются только сами элементы без родителей. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)