假设我有10名学生。
我声明了一个变量intCount=0
,以便我可以使用各自的id循环输入字段。
循环输入字段的代码如下所示:
<%intCount++%>
<tr>
<td><input type="text" id="studenttid_<%=intCount%>"%>"></td>
</tr>
编译后,输出为:
studentid_1
studentid_2
studentid_3
studentid_4
studentid_5
studentid_6
studentid_7
studentid_8
studentid_9
studentid_10 < / p>
然后,我需要将studentid_1,...,studentid_10解析为我的javascript,问题是我不知道我应该在document.getElementById('')
写什么。
我尝试过类似的事情:
<script>var studentId = document.getElementById('studentid_<%=intCount%>')</script>
但它返回&#34;变量intCount未定义&#34;。我该怎么做才能解决我的问题?请帮忙。提前谢谢。
答案 0 :(得分:0)
您可以执行以下操作:
您可以使用.reduce
代替.filter().map()
执行此操作,但这可能更容易理解。
var inputs = document.getElementsByTagName("input");
var inputArr = Array.apply(null, inputs);
var studenttid_elements = inputArr.filter(ele => ele.id.indexOf("studenttid_") === 0);
var studenttid_ids = studenttid_elements.map(ele => ele.id);
console.log("Elements:", studenttid_elements);
console.log("IDs", studenttid_ids);
<input type="text" id="studenttid_1">
<input type="text" id="studenttid_2">
<input type="text" id="other_id">
答案 1 :(得分:0)
您需要将JavaScript代码保存在JSP文件中的<script>
标记内或JSP文件中包含的文件中。
<script>var studentId = document.getElementById('studenttid_<%=intCount%>') </script>
如果您的JavaScript不在标记内,或者不在JSP文件中,则Jasper引擎会忽略它。
或者,只需使用EL。
'studenttid_${intCount}'