2011-02-02 9 views
7

tengo el código HTML siguiente:Selección html interior en un selector de jQuery

<div id="ctl00_m_g_f660033c_e200_4bff_b244_b574efe5b9b5"> 
    <ul style="margin-left: 0px"> 
     <li id="li5"><a href="#">T, Paul</a> </li> 
     <li id="li4"><a href="#">People**R, Jesse</a> </li> 
     <li id="li1"><a href="#">Animals**El Guapo</a> </li> 
     <li id="li2"><a href="#">Animals**Sasha</a> </li> 
     <li id="li3"><a href="#">People**G, Jenice</a> </li> 
    </ul> 
</div> 

deseo seleccionar sólo los elementos (li) que contienen ** en el texto interior. Puedo comprobar esto en jQuery usando el siguiente código:

if ($(this).html().indexOf('**') == -1) 
    { return; } 

Sin embargo, me gustaría hacer esto en el selector de jQuery para evitar análisis innecesarios. Puedo usar algo como esto para que coincida con el campo id:

$('ul li a[id*='**']') 

.. pero yo no era capaz de encontrar una manera para que coincida con el html() dentro del (a) elemento en el selector de jQuery. ¿Es posible hacer esto?

Gracias de antemano

Respuesta

8

Usted puede lograr esto con el :contains() selector. En este fragmento escribiría:

$("ul li a:contains('**')") 
12

usted está buscando el selector :contains.

p. Ej.

$('ul li:contains(**)')