【发布时间】:2016-05-05 11:12:28
【问题描述】:
我在使用parentNode.removeChild() 时遇到了一些困难。我在无序列表中有一个“项目”列表,每个项目都有自己的删除按钮。我正在尝试将单击事件绑定到每个单独的按钮,该按钮将删除它各自的父“项目”。
到目前为止我的代码:
<ul class="list">
<h2>This is a list</h2>
<li class="item">
<h3>Some Item</h3>
<button class="delete">Delete</div>
</li>
<li class="item">
<h3>Some Item</h3>
<button class="delete">Delete</div>
</li>
<li class="item">
<h3>Some Item</h3>
<button class="delete">Delete</div>
</li>
</ul>
var childElements = document.getElementsByClassName('item');
var buttonElement = document.getElementsByClassName('delete');
function deleteItem(buttonsClass, childClass) {
for (var i=0;i<buttonsClass.length;i++) {
var child = childClass[i];
buttonsClass[i].addEventListener('click', function(child) {
childClass[i].parentNode.removeChild(childClass[i]);
}, false);
}
}
deleteItem(buttonElement, childElements);
我知道使用 jQuery 有一种更简单的方法可以做到这一点,但我真的想用普通的 javascript 来解决这个问题。感谢您的所有帮助。
【问题讨论】:
-
您能描述一下您遇到的错误或意外行为吗?
-
如果给元素分配ID,不使用for循环删除元素会更容易;也for循环删除所有元素。
标签: javascript for-loop addeventlistener removechild