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

how to get number of rows from Struts JSP table using javascript

我在 JSP struts 中有 table,它是动态生成的。我会使用 javascript 来获取 table 生成的行数。这是示例代码

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

但它 return 什么都没有

这就是在迭代 table

中获取 table 行数的方法
  <%
    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);

实际上,id="myTable" 不是 DOM 对象的 id,然后可以通过 JavaScript 检索该对象。它是一个 Struts 2 标识符,指的是 ValueStack 上可用的集合。事实上,为了减少混淆,最新的 Struts 2 版本现在使用属性 var 代替 id.

我建议通过 Struts 简单地将 JavaScript 变量初始化为集合的 size,而不是处理结果 HTML table。

var x = <s:property value="myTable.size" />;
alert(x);

这样就简单多了。