如何使用javascript从Struts JSP表中获取行数

时间:2015-04-16 00:47:32

标签: java javascript html jsp struts2

我在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);

但它不会返回任何内容

2 个答案:

答案 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);