jquery 类名删除或添加

<i id="caret" class="caret_bottom"></i>

如何单击 caret 事件
然后把caret_bottom改为caret_top

<i id="caret" class="caret_top></i>

再然后单击 caret事件 改为

<i id="caret" class="caret_bottom"></i>

要用三目运算符或者if

i=$("#caret");
i.click(function(){
        ???
}
阅读 4.4k
4 个回答

最简单的一个思路
先判断class内容
再设定

我觉得你还是把普通if/else写法写会再来考虑三目

i=$("#caret");
i.click(function(){
   $(this).hasClass("caret_bottom")?$(this).removeClass("caret_bottom").addClass("caret_top"):$(this).removeClass("caret_top").addClass("caret_bottom");
});

//一般会直接有个默认的样式 然后只是切换有无caret_top样式
$("#caret").click(function(){

 $(this).toggleClass('caret_top');

});

//你这个的话 可以按下面这种方式判断
$("#caret").click(function(){

 if($(this).hasClass('caret_top')) {
     $(this).addClass('caret_bottom').removeClass('caret_top');
 } else {
     $(this).addClass('caret_top').removeClass('caret_bottom');
 }

});

缓存$(this)更好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题