2013-04-27 37 views
-1

在我的Java程序中,我有一個List<DemoTable>如何使用Jquery獲取表ID?

List<DemoTable> demotable = new ArrayList<DemoTable>(); 

DemoTableidname,並details變量的類。

我顯示使用jQuery這些細節..

<table> 
    <c:forEach items="${modalAttribute.demotable}" var="demo"> 
    <tr class="M_row_bg M_read"> 
     <td><input type="checkbox" id="isDelete"/></td> 
     <td><label for="name">${demo.name}</label></td> 
      <td><label for="totalExperience">${demo.details}</label></td> 
     </tr> 
    <c:forEach> 
</table> 

的數據將正確顯示...但點擊複選框,當我想錶行ID:

$("#isDelete").click(function(){ 
if (this.checked){ 
    alert('checked'); 
    alert(demo.id); 
} else { 
    alert('unchecked'); 
} 
}); 

我期待此警報提供DemoTable ID,但此警報不顯示。此外,此點擊僅適用於表格的第一行。

當我點擊複選框時,如何獲得DemoTable ID?

我的代碼需要處理表格單擊事件的每一行,而不僅僅是第一行?

回答

1
  1. 您在表格中多次使用#isDelete。這是非法的,你的代碼只能在第一行工作。改爲使用班級。

  2. 您的表格行甚至沒有的ID。但它們確實有一個隱含的索引。

  3. 你應該給你的表中的ID

  4. 你可以使用「事件委託」,只是註冊一個共同的父元素在一個單一的點擊處理程序(即表),然後使用事件冒泡找出哪些實際元素被點擊。這比在每個匹配元素上顯式註冊完全相同的事件處理函數更有效。

試試這個:

$('#myTable').on('click', '.isDelete', function(){ 
    if (this.checked) { 
     var rowId = $(this).closest('tr').index(); // row within table (0 based) 
    } 
}); 
+0

#myTable意味着表標籤ID ......並有可能保持在表中的隱藏價值? – 2013-04-27 10:28:58

+0

是'

'。至於隱藏的價值,當然,這是可能的。 – Alnitak2013-04-27 10:33:34

+0

好吧,我保持我的類ID隱藏... ..這是工作?如果在點擊事件中工作如何獲得隱藏標籤vlaue。 – 2013-04-27 10:40:55