如何在方法中添加 class - VUE.js

How to add a class in a method - VUE.js

基本问题,但我仍然不知道如何根据@click 添加额外的 class。我仍然收到错误消息:无法读取未定义的 属性 'add'"

methods: {
    hideItems() {

        document.getElementsByClassName('sold').classList.add('hide')
       }
    }

您可以在您的元素上添加 :class="{ hide: hidden }" 属性,其中 hidden 是 Vue 组件的布尔值 属性。这将切换元素上的 hide class。

new Vue({
  el: "#app",
  data() {
    return {
      hidden: false,
    };
  },
  methods: {
    toggle() {
      this.hidden = !this.hidden;
    },
  },
});
.hide {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <button @click="toggle">
  Toggle visibility
  </button>
  <div :class="{ hide: hidden }">
    Hello
  </div>
</div>

getElementsByClassName return HTMLCollection 所以你需要遍历那个集合。

应该这样做:

methods: {
    hideItems() {
        const items = document.getElementsByClassName('sold');

        for(item of items){
           item.classList.add('hide');
         }
       }
    }