简短版:我如何(使用 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')。我想将逻辑添加到标记文件(JavaScript、附加的 JSTL、任何必要的)以检查 questionOptions 的长度,并在必要时将类添加到 div。
我知道我可以将脚本标签添加到标签文件中,如下所示:
<c:if test="${fn:length(question.questionOptions) < 3}">
<script type="text/javascript">
$(document).ready(function() {
$('div .singleChoice').addClass('compact');
});
</script>
</c:if>
但由于它在整个文档准备就绪时执行,并且标签可能在页面中出现多次,因此如果其中任何一个符合应用标准,它将将“紧凑”类应用于页面上的所有“singleChoice”div。当我不知道 ID(并且希望避免设置它)时,如何从标记文件中指定此div?