如何从 VueJs 中的选定元素中删除特定的类名?

Posted

技术标签:

【中文标题】如何从 VueJs 中的选定元素中删除特定的类名?【英文标题】:How to remove particular class name from an selected element in VueJs? 【发布时间】:2018-11-09 00:33:58 【问题描述】:

这就是我的 vuejs 方法的样子。在 changeRoute 函数中,我可以通过e.target.className = 'clicked'; 更改类名但是当我尝试从其他元素中删除该类名时,我无法通过pre.removeClass('clicked'); 来完成此操作?

<script>   
export default 

  components:  
      
  ,
  data()  
      return 

      
  ,
  methods: 
      changeRoute(e, route) 
           
        var pre = this.$el.querySelector('.clicked');
        if(pre) 
            // pre.removeClass('clicked'); 
        

        this.$router.push(
            name: route
        ); 
        e.target.className = 'clicked';
          
      
  ,
  mounted() 
      this.$nextTick(() => 
 
      )
  


</script>

还有如何推送类名而不是全部替换为e.target.className = 'clicked';

【问题讨论】:

【参考方案1】:

您可以为此使用classList.add and classList.remove。 但是您似乎想根据当前路由设置链接样式,这可以使用 vue-router 完成,因为它会在与当前路由匹配的链接上添加类。Vue-router active class

【讨论】:

非常感谢。实际上我想知道在函数中这样做的方式。 :) 很高兴我能帮助@SwadhIn【参考方案2】:

使用实际的 Vue 来完成这个任务。 我可以在这里解释一下,但是 Vue 页面做得很好。

https://vuejs.org/v2/guide/class-and-style.html

【讨论】:

我知道这种技术,但我想知道如何在 vue 函数中做到这一点。【参考方案3】:

如果所选元素是 li 列表的一部分并且应该添加类(并因此从先前单击的 li 中删除),这是 Herteby 在VueJS Forum 上的一个很好的解决方案

https://forum.vuejs.org/t/how-to-add-active-class-to-element/28108/2

【讨论】:

以上是关于如何从 VueJs 中的选定元素中删除特定的类名?的主要内容,如果未能解决你的问题,请参考以下文章

如何在VueJS中使用$ http.delete删除html元素

如何从 ListView 中删除 Firebase Android 中的特定节点

从OpenCV中的图像中删除选定的元素

如何从javascript或jquery中的元素数组中删除特定元素

VueJS 将类切换到表中的特定元素

如何从javascript或jquery中的元素数组中删除特定元素