我在JSP struts中有表,它是动态生成的。我想使用javascript来获取表生成的行数。这是一个示例代码
<s:iterator status="state" id="myTable">
<td><s:textfield name="username" id="username" cssClass="size40" readonly="true" tabindex="-1" /></td>
<td><s:textfield name="lastName" id="lastName" cssClass="size40" readonly="true" tabindex="-1" /></td>
</tr>
</s:iterator>
我尝试使用此代码
var x = document.getElementById("myTable").rows.length;
alert(x);
但它不会返回任何内容
答案 0 :(得分:1)
实际上,id="myTable"
不是DOM对象的id
,然后可以通过JavaScript检索。它是一个 Struts 2标识符,指的是 ValueStack 上可用的集合。事实上,为了消除混淆,最新的 Struts 2 版本现在使用属性var
代替id
。
我建议您只需通过Struts将JavaScript变量初始化为集合的size
,而不是处理生成的HTML表。
var x = <s:property value="myTable.size" />;
alert(x);
这种方式简单得多。
答案 1 :(得分:0)
这是如何在迭代表中获取表行的计数
<%
int count=0;
%> <s:iterator status="state" id="myTable">
<% count ++; %>
<td><s:textfield name="username" id="username" cssClass="size40" readonly="true" tabindex="-1" /></td>
<td><s:textfield name="lastName" id="lastName" cssClass="size40" readonly="true" tabindex="-1" /></td>
</tr>
</s:iterator>
<input type="text" id="tableCount" style="display:none;" value="<%= count%>">
在javascript中
var x = document.getElementById("tableCount").value;
alert(x);