如何删除或清空通过函数参数选择的 HTML 元素?

Posted

技术标签:

【中文标题】如何删除或清空通过函数参数选择的 HTML 元素?【英文标题】:How to delete or empty an HTML element selected through function parameter? 【发布时间】:2022-01-12 01:26:57 【问题描述】:

我正在尝试使用 javascript 删除或清空元素,但它必须是我们作为参数传递给函数的元素。例如,它必须在 onClick 上工作,一切都必须动态工作,但我无法让它工作。 到目前为止,这是我的代码:

function deleteElement(selector, type) 
  switch (type) 
    case `$"delete" || "remove"`:
      document.querySelector(selector).remove();
      break;
    case "empty":
      document.querySelector(selector).innerhtml = "";
      break;

    // if user doesn't enter desired outcome, the element will be deleted by default
    default:
      document.querySelector(selector).remove();
      break;
  

我的问题是,如何使用此代码对动态选择的元素执行操作?

【问题讨论】:

将第一个 case 更改为 case 'delete': case 'remove':(在 2 个单独的行上) case '$"delete" || "remove"': 将只是 case "delete":,请参阅 ***.com/questions/6513585/… 我明白了,但问题是我的选择器,例如,当我单击 div 时如何执行我的代码,而不直接将事件侦听器添加到函数中 你不需要监听器。您正在通过函数手动执行它。 【参考方案1】:

如果您想在触发时不使用选择器删除元素,您可以将this 作为参数而不是选择器传递:

function removeEl(element)
  element.remove();
<div onclick="removeEl(this)">click</div>

如果你想为所有共享同一个类/属性/父级的 div 设置一个事件监听器......你可以这样做:(在这个例子中,你的元素之间的共享选择器是 @987654324 @)

// looping thourgh all 'div's having a 'data-type' attribute
document.querySelectorAll('div[data-type]').forEach(element =>
  // adding a simple onclick event listener
  element.onclick = () => element.remove()
)
<div data-type="hi">Hey</div>
<div data-type="type">Yes sir</div>

【讨论】:

【参考方案2】:

我很确定一定有一个更优雅的解决方案,但如果你真的需要一个监听器,你可以这样做:

clickable.addEventListener("click",(selector, type) => deleteElement('section'));

clickable 是一个 DOM 元素,您可以使用 querySelector 进行设置。

【讨论】:

以上是关于如何删除或清空通过函数参数选择的 HTML 元素?的主要内容,如果未能解决你的问题,请参考以下文章

jquery如何删除子元素

c语言中怎么把一个数组清空

如何完全清空或删除VSTS包裹Feed?

JavaScript中清空数组的三种方式

微信小程序如何批量删除

C语言数组如何进行元素求和?