首页 > 解决方案 > 无法从内部删除 div 中的类,JS

问题描述

如您所见,我想extended从父 div 中删除类。由于某种原因,这不起作用。我怎样才能让它工作?

function closeExpandedProject() {
  const expandedElement = document.querySelector('.expanded');
  expandedElement.classList.remove('expanded');
}
.expanded { border: 1px solid black; }
<div class="project-item-wrapper expanded">
  Here is some text
  <span class="close" onclick="closeExpandedProject()">X</span>
</div>

标签: javascripthtml

解决方案


我相信问题是您通过 querySelector 选择的不是您单击的元素的父级。您必须选择被点击元素的 parentNode。

这可能会解决您的问题:

<div class="project-item-wrapper expanded">
  <span class="close" onclick="closeExpandedProject(this)">X</span>
</div>

Javascript:

function closeExpandedProject(element) {
    const expandedElement = element.parentNode;
    expandedElement.classList.remove('expanded');
  }

推荐阅读