从父元素javascript中删除类

从父元素javascript中删除类,javascript,Javascript,我有一个通过onclick函数打开的容器。然后,我在容器中有一个十字,它应该关闭父元素,但是我收到一个 TypeError: undefined is not an object (evaluating 'parent.id') 代码在这里 <div class="post" onclick="postClick(el)"> ... ... </div> 使用event.target获取对HTML元素的引用。 在parent.i

我有一个通过onclick函数打开的容器。然后,我在容器中有一个十字,它应该关闭父元素,但是我收到一个

TypeError: undefined is not an object (evaluating 'parent.id')
代码在这里

<div class="post" onclick="postClick(el)">
...
...
</div>
使用event.target获取对HTML元素的引用。 在parent.id.classList表达式中有一个额外的.id

函数后单击事件{ const el=event.target; document.getElementByIdel.id.classList.addread; } 功能后关闭事件{ const el=event.target; const parent=el.parentNode; console.logparent.id; parent.classList.removead; } ... ...
如果项目比较复杂,并且需要更多的交互性,那么可以使用jquery库进行交互性

//to remove class
$( "p" ).removeClass( "myClass yourClass" )


$("#div123").toggle(); //if you want to temp hide elements
由于代码建议必须禁用“读取”项,因此可以在事件处理程序包装到toggle方法上后切换它们。您可以传递这个或$this,以防您想对函数调用的所有者进行操作


我同意一些熟练的开发人员不喜欢这个答案,这肯定会对一些未来的初学者开发人员有所帮助,他们正在寻找隐藏元素或删除类的替代选项

一种方法是使用纯Javascript并像这样绑定事件监听器 document.querySelector'toggle'。addEventListener'click',函数e{ console.logthis.parentNode.classList.remove'read' }; div{ 填充:20px 50px; } 读{ 背景色:红色; } 删除父类
console.logparent.id的作用是什么;return?@AndrewL64 undefinedPlease再也不要推荐jQuery了,因为jQuery是一个巨大的库,可以完成这么简单的任务。我的整个网站上只有10个javascript函数,我认为没有必要使用它JQuery@mac我的回答充分解释了从父元素javascript中移除类。它旨在节省开发人员的时间并减少维护。如果您对本机JS非常熟悉,则由您决定。TypeError:undefined不是一个评估“event.target”的对象。您的问题与parent.id.classList.remove中的额外id有关;我有parent.classList.removead;作为最后一行,它仍然返回TypeError:undefined不是计算“event.target”的对象如果parent.id返回undefined,则父级可能没有id标记
//to remove class
$( "p" ).removeClass( "myClass yourClass" )


$("#div123").toggle(); //if you want to temp hide elements