javascript - jq字符串操作?

查看:88
本文介绍了javascript - jq字符串操作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

  //html结构
  <em class="icon icon-eye"></em>
  <em class="icon icon-star"></em>
  //类似class一堆
  <em class="icon icon-btn"></em>

  $('.icon-star').on('click', function() {
        //点一次点击 末尾追加-active<em class="icon icon-class名称-active"></em>
        //点二次点击还原 <em class="icon icon-class名称"></em>
   });

//自己摸索的 感觉不完善

  var iconOff = 1;
    $('.icon-star').on('click', function() {
        if (iconOff == 1) {
            
            var thisClass = $(this).attr('class');
            //默认class
            norClass = thisClass;
            $(this).removeClass(thisClass);
            $(this).addClass(thisClass + '-active');
            //获取新class
            var newClass = $(this).attr('class');
            iconOff = 0;
        } else {
            $(this).removeClass(newClass);
            $(this).addClass(norClass);
            iconOff = 1;
        }
    });

解决方案

听你的描述应该是点击的时候修改className, 如果有active就去掉,没有就加上

$('.icon-star').on('click', function() {
    var className = $(this).attr('class'),
        // 需要处理的className
        dealClassName = className.split(' ').filter(function(v) {
            if(v.indexOf('icon-') > - 1) return v;
        }).toString(),
        // 新的className
        newClassName = dealClassName.indexOf('-active') > -1? dealClassName.replace('-active', '') : dealClassName + '-active';
        
    $(this).attr('class', newClassName );
});

这篇关于javascript - jq字符串操作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆