我实际上发现很难将元素属性定位为点击目标。
我建立了一个自动搜索系统,我也想添加一个删除功能。
在将结果作为循环元素下拉后,我希望能够单击特定的元素删除按钮,并能够使用其元素data-id =“ each-number”从数据库中删除它,如何我只用JavaScript将属性定位为忽略其他元素的特定元素
static delApi(delClassName, attribute){
const del = document.querySelectorAll(delClassName);
del.forEach(e =>{
})
static delApi(delClassName, attribute){
const del = document.querySelectorAll(delClassName);
del.forEach(e =>{
e.target.this.attribute //only
})
答案 0 :(得分:2)
我根本不理解您的代码片段; forEach与单击事件处理程序无关。但是您对e.target
的概念实际上非常接近。这是一个在事件侦听器回调的上下文中如何工作的示例。
我在addEventListener上使用了香草JavaScript,因为当您包含jQuery标签时,上面的所有代码都是香草。我还创建了一个事件监听器,并允许click事件冒泡,然后过滤掉了我可能不感兴趣的所有事件。
所有这些对于jQuery来说都更加简单明了,因为它可以为您处理所有过滤操作: $(document.body).on('button', function(e) { /* ... */ })
。
我可以使用dataset从data-id
属性中提取。
document.body.addEventListener('click', function(e) {
if(e.target.tagName==='BUTTON') console.log("delete", e.target.dataset.id);
});
<button data-id="1">one</button>
<button data-id="2">two</button>
<button data-id="3">three</button>
<button data-id="4">four</button>