javascript - jq字符串操作?
高洛峰
高洛峰 2017-04-11 12:52:33
[JavaScript讨论组]
  //html结构
  
  
  //类似class一堆
  

  $('.icon-star').on('click', function() {
        //点一次点击 末尾追加-active
        //点二次点击还原 
   });

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

  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;
        }
    });
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
阿神

听你的描述应该是点击的时候修改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 );
});
大家讲道理

可以用 toggleClass() 方法来切换。

阿神

追加到哪里的末尾?
追加使用方法append("")
删除直接remove(),不过要知道你想删除的节点的位置,这个思路就行

伊谢尔伦

为什么你要用先获取他的class
class那么多要是顺出错了
你的字符串拼接就出错了
你的图标类名如果是不变的 直接在addClass(“icon类名”)写就好了

要是你有很多这种操作,把图标的类名保存到别的地方

在用attr()获取
var thisClass = $(this).attr('iconClass');

这里改成 就好了
var iconOff = 1;

$('.icon-star').on('click', function() {
    if (iconOff == 1) {
        
        var thisClass = $(this).attr('iconClass');
        //默认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;
    }
});
阿神

用hasClass,检测是否有active class,有的话removeClass,没有则addClass

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号