我有桌子:
<table class="table table-bordered">
@for (var i = 0; i < Model.Count; i++)
{
<tr>
<td width="25px">
@if (!Model[i].Letter.Equals(letter))
{
@Html.DisplayTextFor(m => Model[i].Letter);
}
</td>
<td width="45px">
<div class="button-edit"></div>
</td>
<td>
@Html.HiddenFor(m => Model[i].Student.Id, new { @class = "mojaklasa" } )
</td>
<td>
...
</td>
<td>
...
</td>
<td>
...
</td>
</tr>
}
</table>
我怎样才能最接近隐藏价值? 我试过了:
$(document).ready(function () {
$('.button-edit').each(function () {
$(this).mouseenter(function () {
$(this).fadeTo(20, 1).css('cursor', 'pointer');
});
$(this).mouseleave(function () {
$(this).fadeTo(20, 0.5);
});
$(this).click(function () {
var id;
$(this).closest('.mojaklasa').val(id);
alert(id);
});
});
和$(this).next .... 如果我点击这个按钮,我在警报框中没有任何东西。 我甚至把课程放在里面,但我可以从中得到这个文本。
答案 0 :(得分:0)
您需要找到父tr,然后尝试查找输入。
$(document).ready(function () {
$('.button-edit').each(function () {
$(this).mouseenter(function () {
$(this).fadeTo(20, 1).css('cursor', 'pointer');
});
$(this).mouseleave(function () {
$(this).fadeTo(20, 0.5);
});
$(this).click(function () {
var id;
$(this).closest("tr").find('.mojaklasa').val(id);
alert(id);
});
});
答案 1 :(得分:0)
试试这个
$(this).closest('tr').find('.mojaklasa').val(id);
答案 2 :(得分:0)
您需要相对于所点击项目的父级进行搜索,但绝不应在each
中连接多个事件。这是毫无意义的,因为jQuery为您管理多个处理程序。
$(function () {
$('.button-edit').mouseenter(function () {
$(this).fadeTo(20, 1).css('cursor', 'pointer');
}).mouseleave(function () {
$(this).fadeTo(20, 0.5);
}).click(function () {
var id = $(this).closest("tr").find('.mojaklasa').val();
alert(id);
});
});
这将使用类.button-edit
将3个处理程序连接到所有元素。您还需要使用从val()
返回的值,而不是使用参数调用val
(因为它设置了隐藏值)。