短いバージョン: どのように (JQuery または他のセレクターを使用して) JSP 2.0 タグファイルのこのインスタンスによって作成された HTML 要素を選択できますか?
長いバージョン:
次のような JSP 2.0 タグファイルがあります。
<%@ tag body-content="empty" import="org.myapp.model.Question" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ attribute name="question" required="true" type="org.myapp.model.Question" %>
<div class='singleChoice'>
<c:forEach items="${question.questionOptions}" var="option">
<!-- display options... -->
</c:forEach>
</div>
このタグは、特定のページで複数回使用できます。question.questionOptions のサイズが 3 未満の場合、このタグによって生成される「singleChoice」div に追加の CSS クラス (「compact」) を追加したいと考えています。questionOptions の長さをチェックし、必要に応じてクラスを div に追加するために、タグファイル (JavaScript、追加の JSTL、必要なものは何でも) にロジックを追加したいと思います。
次のように、スクリプトタグをタグファイルに追加できることを知っています。
<c:if test="${fn:length(question.questionOptions) < 3}">
<script type="text/javascript">
$(document).ready(function() {
$('div .singleChoice').addClass('compact');
});
</script>
</c:if>
ただし、ドキュメント全体の準備ができたときに実行され、タグがページに複数回表示される可能性があるため、「compact」クラスのいずれかが適用基準を満たしている場合、ページ上のすべての「singleChoice」div に「compact」クラスが適用されます。ID がわからない場合 (そして ID を設定する必要がないようにしたい場合)、タグファイル内からこのdivを指定するにはどうすればよいですか?