Как я могу найти HTML-элементы, которые содержат определенный текст в HTML-комментарии? - PullRequest
3 голосов
/ 04 марта 2009

Я пытаюсь использовать jQuery для определения

элементов, которые содержат определенный текст комментария HTML. Стандартный селектор ": содержит", кажется, не просматривает комментарии. Мой контекст здесь заключается в том, что я хочу динамически добавлять некоторый контент к тому же элементу td. Вот образец цели td:
<TD valign="top" class="ms-formbody" width="400px">
        <!-- FieldName="Title"
             FieldInternalName="Title"
             FieldType="SPFieldText"
          -->
            <span dir="none">
        <input name="ctl00$m$g_0b1e4ca3_9450_4f3e_b3af_8134fe014ea5$ctl00$ctl04$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$TextField" type="text" maxlength="255" id="ctl00_m_g_0b1e4ca3_9450_4f3e_b3af_8134fe014ea5_ctl00_ctl04_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" title="Title" class="ms-long" /><br>
    </span>


        </TD>

Этот html генерируется SharePoint как часть новой формы элемента списка, и я действительно хочу найти td в моем документе, чье «FieldInternalName» в комментарии соответствует некоторой текстовой строке. Как я могу использовать jQuery (или любой javascript на самом деле хорошо), чтобы лучше всего найти эти элементы td?

Ответы [ 2 ]

3 голосов
/ 04 марта 2009

Вы можете взять innerHTML элемента и запустить над ним регулярное выражение.

Пример:

// HTML: <div id="myElement">Lorem <!-- a comment --> ipsum.</div>

var element = document.getElementById('myElement');
alert(element.innerHTML); // alerts "Lorem <!-- a comment --> ipsum."
// here you could run a regular expression

Обновление: более подробный пример (с jQuery):

var tds = $('td'), match;
tds.each(function(index, element) {
    match = $(element).innerHTML.match(/FieldInternalName="(^["])"/);
    if (match) alert(match);
});
0 голосов
/ 04 марта 2009
if(document.getElementById('myElement').innerHTML.indexOf(text_string) != -1) { //do something }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...