vue中,选中多个选项,并且使其高亮

2019-08-15  本文已影响0人  MiSiTeWang

在vue中很常见的就是tab切换,选项卡切换,动态添加类名使选项卡选中高亮,对应内容切换,方法大家应该非常熟悉了,
现在提到一种,可以多选多个选项的,效果如下图


20190227195309696.png
贴上代码
<div class="zxlybox">
    <p>请选择领域 <span>(可多选)</span></p>
    <ul>
        <li class="zxlybtn" :class="{zxlybtn2:chooseAfterValue.indexOf( item.text )!=-1}" v-for="(item,index) in lyList" :key="index" @click="choosely(index,item.text)">
            <span>{{item.text}}</span>
            <img v-if="chooseAfterValue.indexOf( item.text )!=-1" src="../../../static/img/close.png" alt="">
        </li>
    </ul>
    <p class="btn"><span @click="xzly">取消</span><span @click="sure">确定</span></p>
</div>

export default {
    name:'enter',
    data(){
        return{
            lyList:[
                {text:'绘画'},
                {text:'书法'},
                {text:'陶瓷'},
                {text:'紫砂'},
                {text:'玉石'},
                {text:'金属'},
                {text:'雕塑'},
                {text:'宗教'},
                {text:'文玩'},
                {text:'非遗'},
                {text:'杂项'},
            ],
            chooseAfterValue:[],
         }
     },
     methods:{
        choosely(n,value){
                if(this.chooseAfterValue.indexOf( value )!=-1){
                    this.chooseAfterValue.splice( this.chooseAfterValue.indexOf( value ), 1 )
                }else{
                    this.chooseAfterValue.push(value)
                }
            },
     }
}

方法中 用到了indexOf 根据value 内容值,找到了对应在数组中的下标, (等于-1数组中没有这个值)
然后,从数组中删除就是splice(从下标开始,删除长度为1)

而上边动态添加类名也是根据在数组中判断 arr.indexOf(‘xxx’) 是否为-1 (是-1, 说明数组中没有匹配到改内容(动态添加类名的条件判断为false),反之亦然)

啦啦啦 好啦,这样效果就实现了~

---------------------

版权声明:本文为CSDN博主「干了这碗小米汤儿」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MtangEr/article/details/87988510

上一篇下一篇

猜你喜欢

热点阅读