我在获取html表@Html.TextBoxFor()
元素中的<td>
元素的值时遇到问题。表格中有一个复选框,选中此复选框后,我需要获取input
元素的值。我尝试了很多东西,但它总是回归&#39; undefined&#39;值。
在MVC视图中
@{
for(int i=0; i<Model._list.count; i++)
{
<tr style='@stylet' class="erow">
<td class="idcol1">@Html.TextBoxFor(m => m._list.st[i].idcol1)</td>
<td>@Html.TextBoxFor(m => m._list.st[i].idcol2)</td>
<td>@Html.TextBoxFor(m => m._list.st[i].idcol3)</td>
<td>@Html.TextBoxFor(m => m._list.st[i].idcol4)</td>
<td>@Html.TextBoxFor(m => m._list.st[i].idcol5)</td>
<td>@Html.TextBoxFor(m => m._list.st[i].idcol6)</td>
<td class="editChk1"><input type ="checkbox" class="editChk" data-rowid="@Model._list[i].LineNo"/></td>
<td style="display:none">
@Html.HiddenFor(m => m._list[i].prodCode, new { @class = "hdnprodId" })
</td>
</tr>
}
}
在剧本中:
<script type="text/javascript">
$(document).ready(function () {
$('.editChk').click(function () {
var rowId = $(this).data("rowid");
var a = $(this).closest("idcol1").val();
alert(a); // a is returing undefined
});
});
</script>
检查.editchk
- 需要idcol1
。
答案 0 :(得分:1)
您可以使用相对选择器
$('.editChk').click(function () {
var row= $(this).closest('tr');
var a = row.children('.idcol1').children('input').val();
alert(a);
});
您当前的代码无效,因为您找到了.closest()
复选框的class="idcol1"
祖先,而class="idcol1"
不存在,即使有,<td>
的元素也是{ {1}}元素,而不是文本框。