gpt4 book ai didi

javascript - 如何向动态嵌套元素添加 onclick 事件?

转载 作者:行者123 更新时间:2023-11-28 17:10:03 26 4
gpt4 key购买 nike

我正在向我的 table 动态添加一个“大厅”,如下所示:

_rooms.forEach(room => {
const tr = document.createElement('tr')

tr.innerHTML = `
<th scope="row">${room.RoomName}</th>
<td>${room.UsersInRoom.length}</td>
<td>
<form>
<input class="btn btn-primary btn-sm btn-block" type="button" id="join" value="${room.RoomName}" />
</form>
</td>`

document.getElementById('room-list').appendChild(tr)
})

但我希望能够添加 onclick输入类型按钮的事件。
我怎样才能实现这一目标?

最佳答案

获得所需结果的更简单方法是通过 HTML 字符串创建它。创建子元素后,您可以在 foreach 循环中获取当前元素的事件和 props。

这样您就不必创建每个元素并设置其属性。 (请记住,下面的代码适用于较新的浏览器)

_rooms.forEach(room => {
const tr = document.createElement('tr')
tr.innerHTML = `
<th scope="row">${room.RoomName}</th>
<td>${room.UsersInRoom.length}</td>
<td>
<form>
<input class="btn btn-primary btn-sm btn-block" type="button" value="${room.RoomName}" />
</form>
</td>`

document.getElementById('room-list').appendChild(tr)
tr.getElementsByClassName('btn-primary')[0].addEventListener("click", () => {
// click event code
console.log('click', room)
})
})

关于javascript - 如何向动态嵌套元素添加 onclick 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54706562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com