Скриване на елемент (li), който съдържа някакъв низ?

Искам да скрия един <li> елемент от много, който съдържа (вътрешен HTML) низа "каквото и да е". Има ли начин да направите това, без да знаете точната структура на вътрешния HTML на <li>s?

Знам как да го скрия, само намирането е проблемът. Мога да използвам Prototype, за да направя това.


person user1856596    schedule 30.04.2013    source източник
comment
възможен дубликат на Прототип: изберете елемент, съдържащ текст (като jQuery :contains() )   -  person Felix Kling    schedule 30.04.2013
comment
Вижте другия въпрос, свързан по-горе - може да има начини да подобрите скоростта на CSS селектора чрез ограничаване на обхвата до група елементи - но ще трябва да видя повече от вашия HTML.   -  person Geek Num 88    schedule 30.04.2013


Отговори (2)


Можете да направите нещо подобно:

$$("li:contains('whatever')").invoke("hide");

За да обясня: $$("li:contains('whatever')") връща списък от <li>s, които съдържат „каквото и да е“, и след това ние invoke метода hide за всичко в този списък.

Ето jsFiddle.

person Evan Hahn    schedule 30.04.2013

Всъщност, тъй като 1.7.X prototype.js по подразбиране използва точно същата селекторна машина като jQuery, Sizzle:

http://sizzlejs.com/

Както е посочено тук:

http://prototypejs.org/2010/04/05/prototype-1-7-rc1-sizzle-layout-dimensions-api-event-delegation-and-more/

Следователно методите, предложени от Евън Хан, трябва да свършат работа.

person kyeno    schedule 01.05.2013