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

标签 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>

最佳答案

类似这样的事情:

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

获取它们会更容易

关于javascript - 找出在 foreach 循环中按下了哪个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55893383/

相关文章:

c# - 获取用户目录路径

c# - 从 C# 的集成服务目录中提取 dtsx

javascript - 更改复选框未触发

javascript - JQuery ajax JSON 结果到文本输入值

javascript - 是否可以使用 jQuery 为 scrollTop 设置动画?

javascript - 当我说 "Step In"时,为什么 Firebug 不进入我的脚本?

javascript - 关于数组不起作用的思考

javascript - 尝试在 <canvas> 中显示 <a> 的文本内容而没有任何视觉差异

c# - 将位置参数传递给 Ninject 中的构造函数

php - 在下拉更改事件中从购物车中删除项目