【发布时间】:2016-03-13 20:36:29
【问题描述】:
我有一个 jquery .each() 嵌套在 Datatables action 函数中。我试图获取选中行的值(td),所以我想我使用传递给 each() 函数的索引并使用索引来选择行(tr)。索引始终为 0。我的方法似乎有缺陷,但这是一个开始。我需要选中行中的值。
var data = hesTable.$('input[type="checkbox"]:checked').each(function (index, element) {
var item = $(this);
alert(index);
alert('Row index: ' + item.index())
alert('Row index: ' + item.parent().index());
});
HTML (MVC)
<tbody>
@if (Model.HesViewModels != null)
{
// Can't use the DisplayTemplate here because need to assign Data-* attributes
//
//foreach (var item in Model.HesViewModels)
for (var i = 0; i < Model.HesViewModels.Count; i++)
{
// Make sure Hes Service returns data
//
if (Model.HesViewModels[i] != null)
{
<tr>
<td>
@Html.CheckBoxFor(s => Model.HesViewModels[i].Process,
new
{
data_detailid = Model.HesViewModels[i].PartnerReferralDetailId,
data_reasoncode = Model.HesViewModels[i].ReferralDetailReasonCode,
data_statuscode = Model.HesViewModels[i].ReferralDetailStatusCode,
data_outcomecode = Model.HesViewModels[i].ReferralDetailOutcomeCode
})
</td>
<td>@Model.HesViewModels[i].PartnerReferralDetailId</td>
<td>@Html.TextBoxFor(m => Model.HesViewModels[i].ReferralDetailStatusCode)</td>
<td>@Html.TextBoxFor(m => Model.HesViewModels[i].ReferralDetailReasonCode)</td>
<td>@Html.TextBoxFor(m => Model.HesViewModels[i].ReferralDetailOutcomeCode)</td>
</tr>
}
}
}
</tbody>
渲染的 HTML
<input data-detailid="1578441" data-outcomecode="154" data-reasoncode="9" data-statuscode="8" data-val="true" data-val-required="The Process field is required." id="HesViewModels_0__Process" name="HesViewModels[0].Process" type="checkbox" value="true" /><input name="HesViewModels[0].Process" type="hidden" value="false" />
【问题讨论】:
-
您需要显示您的标记,但我想您在单独的容器中拥有
input元素,因此它们都是其父元素的第一个子元素,即index = 0。 -
我有一些猜测关于您的问题可能是什么,但我无法确定,因为您没有提供重现该问题的示例。
-
“我认为我使用了传递给 each() 的索引”
index的.each(function(index, element){})似乎没有被使用? -
@guest271314...当我缩写代码时,我把它剪掉了——它又回来了
标签: javascript jquery asp.net-mvc datatables