2015-04-16 45 views
-1

我在JSP struts中有表,它是動態生成的。我將使用JavaScript來獲取表格生成的行數。下面是一個示例代碼如何從Struts JSP表中使用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

你可以創建一個jsfiddle或發佈生成的HTML嗎? –

+0

你的表格是如何生成的? (你的代碼中沒有任何表,看起來你的迭代器標記沒有做任何事。)你想簡單顯示行數還是你真的需要這個數字在JavaScript? –

回答

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

這樣就簡單多了。

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%>"> 

In javascript

var x = document.getElementById("tableCount").value; 
alert(x); 
+1

我認爲使用'<%Scriptlets%>'已被長期棄用。當OP將全力以赴使用MVC與Struts時,我不會特別推薦使用它們! –

+0

注意點..謝謝:) – DarkHorse

相關問題