jQuery cluetip: манипулировать контентом после рендеринга - PullRequest
0 голосов
/ 07 января 2010

Возможно, я неправильно это заявляю, но есть ли способ манипулировать (используя JavaScript) контентом в подсказке после того, как контент был (динамически) загружен во внешний .jsp?

У меня естьсписок отображаемых элементов, и я хочу выделить некоторые из них.Я не могу добавлять идентификаторы или классы по отдельности ни к одному из этих элементов в списке перед отображением.По сути, это дамп данных

FYI, мы используем JSF для извлечения элементов из .jsp, которые отображаются в HTML в виде таблицы:

<h:panelGrid columns="1">
    <h:column>
        <h:selectManyCheckbox layout="pageDirection" value="#{advancedtoolscontroller.roleItems}">
            <f:selectItems value="#{advancedtoolscontroller.roleList}" />
        </h:selectManyCheckbox>
    </h:column>
</h:panelGrid>  

Любая помощь очень ценится...

1 Ответ

0 голосов
/ 07 января 2010

Вам необходимо назначить h:selectManyCheckbox и любые родительские компоненты UINamingContainer (например, h:form, h:dataTable и т. Д.) уникальный идентификатор. Таким образом, JSF сгенерирует идентификаторы клиента соответственно, иначе он автоматически сгенерирует непредсказуемые идентификаторы клиента, которые вы не можете использовать в JS. Чтобы узнать, как они были сгенерированы, просто щелкните правой кнопкой мыши страницу в веб-браузере и выберите Просмотр источника .

Однако есть одно маленькое предупреждение: JSF использует двоеточие : в качестве разделителя UINamingContainer, например. formid:checkboxid. Двоеточие - это недопустимый символ в CSS. В любом случае, чтобы выбрать их в CSS / jQuery, вам нужно экранировать их обратной косой чертой. Например. formid\:checkboxid.

Кроме того, h:dataTable добавит еще один идентификатор к идентификатору клиента после идентифицируемого идентификатора, а именно индекс строки, например, formid:datatableid:0:checkboxid. Но это должно выглядеть достаточно очевидно, когда вы видите шаблоны в сгенерированном выводе HTML.

h:selectManyCheckbox в свою очередь присваивает каждому флажку уникальный идентификатор клиента и одно и то же имя клиента. Опять же, просто проверьте сгенерированный вывод HTML, чтобы увидеть шаблоны.

В jQuery вы также можете использовать jQuery.filter(), чтобы отфильтровать интересующие вас флажки на основе последней части их идентификатора / имени клиента.

...