Выбор внутреннего HTML в селекторе JQuery - PullRequest
9 голосов
/ 02 февраля 2011

У меня есть следующий HTML:

 <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>

Я хочу выбрать только (li) элементы, которые содержат ** во внутреннем тексте. Я могу проверить это в JQuery, используя следующий код:

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

Однако я бы хотел сделать это в селекторе JQuery, чтобы избежать ненужного анализа. Я могу использовать что-то вроде этого, чтобы соответствовать в поле id:

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

.. но мне не удалось найти способ сопоставить html () в элементе (a) в селекторе JQuery. Можно ли сделать это?

Заранее спасибо

Ответы [ 2 ]

12 голосов
/ 02 февраля 2011

Вы ищете : содержит селектор.

например

$('ul li:contains(**)')
9 голосов
/ 02 февраля 2011

Этого можно добиться с помощью селектора : contains () . В этом фрагменте вы написали бы:

$("ul li a:contains('**')")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...