2013-04-27 36 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