javascript:如何从foreach获取data-id上的每个记录ID?

时间:2017-04-27 12:23:15

标签: javascript asp.net-mvc html5

我有一个类别列表,可以从foreach获取记录。每行都有删除按钮,此按钮的data-id从行中获取id。我还有一个获取data-id的函数。但是有一个问题,我总是得到第一个记录ID。

like this

Source

Global.js: 

    function DeleteCategory() {
                var Id = $("#Cid").attr("data-id");
                alert(Id); 
            }

Index.cshtml:

  <tbody>
                                @foreach (var item in Model)
                                {
                                    <tr>
                                        <td><span class="label label-success">@item.Id</span></td>
                                        <td>@item.CategoryName</td>
                                        <td>
                                            @if (item.IsActive)
                                            {
                                                <b  class="label label-success">Active</b>
                                            }
                                            else
                                            {
                                                    <b  class="label label-danger">Passive</b>
                                            }
                                        </td>
                                        <td>Server updates and maintenance</td>
                                        <td><a href="#">Admin</a></td>
                                        <td>
                                            <button class="btn btn-default btn-sm" id="editId" onclick="" data-id="">Edit</button>
                                            @*@Html.ActionLink("Delete","Delete", new {id=item.Id },new { onclick = "return confirm('Do you want to delete this row?')"})*@
                                            <button class="btn btn-default btn-sm" id="Cid" onclick="DeleteCategory()" data-id="@item.Id">Delete</button>
                                        </td>
                                    </tr>

                                }

2 个答案:

答案 0 :(得分:0)

页面上元素

id属性必须是唯一的。这意味着不允许具有相同id的2个或更多元素。只有具有此id的第一个元素才会被视为真实元素。你可以改用类。

但在您的情况下,将itemId直接传递给DeleteCategory函数更容易:

<button class="btn btn-default btn-sm" id="Cid" onclick="DeleteCategory(@item.Id)">Delete</button>

并将其修改为:

function DeleteCategory(Id) {
    alert(Id); 
}

答案 1 :(得分:0)

我同意上面的评论,html属性id是罪魁祸首id =“Cid”在任何html页面上,所有id都应该是唯一的。当您在DOM树中编写$(“#Cid”)其搜索并始终返回使用此id找到的第一个元素时。您必须基于item.Id生成动态ID,或者您可以将值作为参数传递给DeleteCategory()函数。希望它会有所帮助。