JavaScript:如何读取内部带有jsp标记的输入id(id =" studenttid_<%= intCount%>")

时间:2017-09-08 02:05:42

标签: javascript jsp

假设我有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;。我该怎么做才能解决我的问题?请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

  1. 获取所有输入字段。
  2. 过滤那些具有您要查找的ID的列表。
  3. 从您要查找的内容中获取id属性。
  4. 您可以使用.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}'