【发布时间】:2020-08-11 01:14:04
【问题描述】:
我正在尝试将 html 数据动态插入到动态创建的列表中,但是当我尝试为动态创建的按钮附加 onclick 事件时,该事件不会触发。非常感谢您的解决方案。
Javascript 代码:
document.addEventListener('DOMContentLoaded', function () {
document.getElementById('btnSubmit').addEventListener('click', function () {
var name = document.getElementById('txtName').value;
var mobile = document.getElementById('txtMobile').value;
var html = '<ul>';
for (i = 0; i < 5; i++) {
html = html + '<li>' + name + i + '</li>';
}
html = html + '</ul>';
html = html + '<input type="button" value="prepend" id="btnPrepend" />';
document.getElementsByTagName('form')[0].insertAdjacentHTML('afterend', html);
});
document.getElementById('btnPrepend').addEventListener('click', function () {
var html = '<li>Prepending data</li>';
document.getElementsByTagName('ul')[0].insertAdjacentHTML('afterbegin', html);
});
});
HTML 代码:
<form>
<div class="control">
<label>Name</label>
<input id="txtName" name="txtName" type="text" />
</div>
<div class="control">
<label>Mobile</label>
<input id="txtMobile" type="text" />
</div>
<div class="control">
<input id="btnSubmit" type="button" value="submit" />
</div>
</form>
【问题讨论】:
-
你是如何创建 html 的?
-
我会说它是因为当您尝试附加事件侦听器时该元素不存在。 - 看看这个learn.jquery.com/events/event-delegation
-
将 addEventListener 移动到 btnSubmit 的事件监听器中
-
嘿,我只是想提一下,您似乎正在尝试创建一个包含 li 元素的 ul 元素。相反,您可以使用 ``(反引号)并按照通常在 HTML 中的方式放置元素。
标签: javascript