18910140161

JavaScript-用JS-Stack溢出从列表中删除最近的<a>元素的URL

顺晟科技

2022-10-19 14:11:26

105

所以我有一个URL列表,我有删除按钮(img按钮)。当单击删除按钮时。必须从列表中删除按钮旁边的url。

我正在使用render()函数将项目打印到屏幕上。我的列表如下所示。

,因为当render()函数再次运行时,不会通过删除最近的url来从列表中删除url;项目回来了!

所以当点击绑定图像时;它旁边的链接必须从列表中删除。谢谢!


顺晟科技:

hi 如果使用此方法,列表将不会更改。

let   list   = [];
const remove = document.getElementById('remove')
const view = document.getElementById('view');
const saveInput = document.getElementById('save-input');

saveInput.addEventListener('click', function (){
    list.push(input.value);
    input.value = '';
    localStorage.setItem('list', JSON.stringify(list));
    render(list);
})

remove.addEventListener('click', function (){
  remove.closest("li").remove();
  render(list);
  })
   
function render(lst) {
  let listItems = '';  
  lst.forEach(element => {
    listItems += `
      <li>
        <a target='_blank' href='${element}'>${element}</a>
        <img src="images/remove.png" 
           onClick="remove_item(this)" 
           id="remove" alt="Remove" width="12" height="12"> 
     </li>`
    });
  view.innerHTML = listItems;
}

此示例使用事件委托,因此不必向所有列表项添加侦听器。

通过事件委托这样做

您有不允许的重复ID

我将委托和拼接

我的代码允许您对列表进行排序

我想您需要这样的东西https://jsfiddle.net/er2uj8pl/

最好从列表中删除项并再次呈现它(我假设您使用的是基于.Closest的jquery)

let   list   = [];
const remove = document.getElementById('remove')
const view = document.getElementById('view');
const saveInput = document.getElementById('save-input');

saveInput.addEventListener('click', function (){
    list.push(input.value);
    input.value = '';
    localStorage.setItem('list', JSON.stringify(list));
    render(list);
})

remove.addEventListener('click', function (){
  remove.closest("li").remove();
  render(list);
  })
   
function render(lst) {
  let listItems = '';  
  lst.forEach(element => {
    listItems += `
      <li>
        <a target='_blank' href='${element}'>${element}</a>
        <img src="images/remove.png" 
           onClick="remove_item(this)" 
           id="remove" alt="Remove" width="12" height="12"> 
     </li>`
    });
  view.innerHTML = listItems;
}

您的使用Id选择器 当有一个以上的元素具有相同的标识时,应使用class

let   list   = [];
const remove = document.getElementById('remove')
const view = document.getElementById('view');
const saveInput = document.getElementById('save-input');

saveInput.addEventListener('click', function (){
    list.push(input.value);
    input.value = '';
    localStorage.setItem('list', JSON.stringify(list));
    render(list);
})

remove.addEventListener('click', function (){
  remove.closest("li").remove();
  render(list);
  })
   
function render(lst) {
  let listItems = '';  
  lst.forEach(element => {
    listItems += `
      <li>
        <a target='_blank' href='${element}'>${element}</a>
        <img src="images/remove.png" 
           onClick="remove_item(this)" 
           id="remove" alt="Remove" width="12" height="12"> 
     </li>`
    });
  view.innerHTML = listItems;
}
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航