javascript - JQuery 删除
问题描述
我有一个 ul,我将在其中使用 JQuery 添加元素,我有这个
function addElement(e) {
let text = $('#itemToAdd').val();
let newItem = $('<li>' + text + '</li>');
let removeBtn = $('<button onclick = "removeElement">X</button>');
newItem.append(removeBtn);
$('#shoppingList').append(newItem);
$('#itemToAdd').val('');
e.preventDefault();
}
$(document).ready(function() {
$("#addBtn").on('click', addElement);
});
为了删除元素,我有这个:
function removeElement() {
$(this).parent().remove();
}
添加功能很棒,但删除功能却不行。
解决方案
如果您正在使用,onclick
那么您必须使用引用调用该函数,因为this
不会引用单击的元素(window
最常见的是指对象)并基于该元素删除该元素。
元素创建:
let removeBtn = $('<button onclick = "removeElement(this)">X</button>');
功能 :
function removeElement(ele) {
$(ele).parent().remove();
}
或者,您可以使用现有函数,但在创建元素后使用 jQuery 绑定事件处理程序。
let removeBtn = $('<button>X</button>');
removeElement.click(removeElement);
另一种选择是事件委托,它有助于处理动态创建的元素上的事件。
推荐阅读
- python - 当我使用 configure_options 使用 add_file_option 将文件发送到我的节点时,为什么 python 会冻结?
- android - 当cordova构建android --angular时点击javax.net.ssl.SSLHandshakeException
- c# - 这两个来自不同类的 FileStreamResult 有什么区别?
- c# - .Net Standard 项目中的资源未添加到 DLL
- scala - 为什么我的 spark 作业在 collectasMap 时被阻塞
- python - 订购seaborn箱线图的y轴?
- python - 在 Seaborn 图中获取 LaTeX 符号,而不会弄乱 Pandas 查询
- r - 为什么我的 for 循环不是每次都重新分配数据帧?
- c# - 同一类型的多个关系
- asp.net-core-webapi - 使用 PutAsync 将数据(带寄存器的模型)发送到 API,但仅在没有注册的情况下到达 Id