我有一个div
@{int index = 0;}
@for (int i = 0; i < Model.lstFiles.Count; i++)
{
<div id="attachmentDetail(@index)" name="attachmentDetail(@index)" class="panel-body">
<a asp-action="Download" asp-controller="Admin" asp-route-realName=Model.lstFiles[i].RealName>@Model.lstFiles[i].FileName</a>
<a onclick="btnDelFile_Click(@index)" id="btnDelFile{@index}" class="pull-right" title="delete"><img height="20" width="20" src="@Url.Content("~/images/delete.jpg")" /></a>
<input type="text" asp-for="@Model.lstFiles[i].IsDeleted" hidden />
<input type="text" asp-for="@Model.lstFiles[i].FileId" hidden />
<hr />
</div>
index++;
}
我想更新@Model.lstFiles[i].IsDeleted
上的btnDelFile_Click
值。但是我无法得到div和它的孩子。我试过这段代码
$('#attachmentDetail(' + index +') :input lstFiles['+index+'].IsDeleted').val("True");
但它说
jquery.min.js:2未捕获错误:语法错误,无法识别的表达式:#attachmentDetail(0)
有没有更好的方法来获得div的孩子?我想更新IsDeleted
值,然后隐藏此div。
任何形式的帮助都将受到赞赏。
答案 0 :(得分:1)
您可以为元素设置id,并使用document.getElementById获取它,然后相应地更新它。
答案 1 :(得分:1)
是的,有一种更好的方式来让孩子(以及父母)。我会在所有可点击的<a>
标记上设置一个唯一的类来触发您的代码,以便您可以按类分配事件处理程序。
$(".uniqueClass").click(function (e) {
var $div = $(this).parent();
var $deletedField = $div.find("input").first();
$deletedField.val(true);
});
现在你可以摆脱所有这些ID属性。