找出在foreach循环中按下了哪个按钮

时间:2019-04-28 18:35:17

标签: javascript c# jquery asp.net-core razor

我向用户返回了他的笔记列表,肯定会有不定数目的笔记。 当文本超过80个字符时,我会创建按钮。

通过单击此按钮,我想在其他按钮之间进行单击,以查找有关其父div的所有信息。我该怎么办?

<div class="d-flex flex-wrap">
        @foreach (var item in ViewBag.UserTodoList)
        {
            <div class="card" style="width: 32%; margin-left: 1%; margin-top:1%">
                <div class="card-body">
                    <h5 class="card-title">@item.Name</h5>
                    @if (item.Body.Length > 80)
                    {
                        <p class="card-text">@item.Body.Substring(0, 80)...</p>
                        <button class="btn btn-info" id="1234">Прочитать</button>
                    }
                    else
                    {
                        <p class="card-text">@item.Body</p>

                    }

                    <a asp-controller="ToDo" asp-action="DeleteTodos" asp-route-todoId="@item.Id" class="btn btn-primary">Удалить</a>
                </div>
            </div>
        }
    </div>

2 个答案:

答案 0 :(得分:1)

我在这方面也不是专家(也是新手),但是我会做的是添加buttonErrorClass这样的类,然后在script里面做< / p>

$('.ErrorButton').click(function() {
    var parent = this.parent(); // With this you get parent div container
});

答案 1 :(得分:1)

类似这样的东西:

const buttons = Array.from(document.querySelectorAll('.card .btn'));

function handleClick() {
    const parent = this.parentNode; // here is parent
    console.log(parent) // lets log it to console
}

buttons.forEach((button) => { button.addEventListener('click', handleClick);})

顺便说一句,您应该为按钮添加唯一的类。通过querySelectorAllgetElementsByClassName

获取它们会更容易