2016-07-09 110 views
0

我正在使用JQuery我在剃刀视图内有一个表格...我想根据在同一行中有的img单击来获取值(StudentID),我想要获取该值,然后将其作为参数发送给Controller类中的Action Method。 有了这句话,我只是得到一个字符串,例如如果点击img元素,并在该行中的StudentID值是129,那么id使用jQuery从表中获取价值

"\n 129 \n" 

我期待id到有价值129. 这是句子,我需要改变?我使用的innerText()尝试,但如果你想咨询表JQuery的不承认它

var id = $(this).parent().siblings().eq(3).text() 

是这样的:

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.LastName) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Age) 
     </td> 
     <td style="display:none" id="tdStudentID"> 
      @Html.DisplayFor(modelItem =>item.StudentID) 
     </td> 
     <td> 
      <img src="~/images/deleteIcon.png" width="20" height="20" class="imgJQuery" /> 
     </td> 

    </tr> 
} 
+1

试试这个选择器'var id = $(this).closest('tr')。find('#tdStudentID')。text()' – guradio

+0

试试这个选择器'var id = $(this).closest('tr ').find('#tdStudentID')。text()'我也建议使用类而不是ID,因为你循环你将创建重复的ID和'ID应该永远是UNIQUE'。所以你的选择器将是'var id = $(this).closest('tr')。find('。tdStudentID')。text()' – guradio

+0

@guradio你说得对使用class属性而不是id,但仍然我得到了相同的结果:““\ n 129 \ n”'我试着用选择你给我,但它得到了相同的结果 – AlexGH

回答

1

添加学生证作为数据的图像上的属性,而不是把它隐藏TD里面,像

<td> <img src="~/images/deleteIcon.png" width="20" height="20" class="imgJQuery" data-student-id='@Model.StudentID'/> </td> 

然后,只需抓住它像

$('img').data('student-id') 
+0

是的,这就是答案为斯蒂芬·马克说的太多,很容易使用img标签内的数据 - 属性做,thnxs – AlexGH