jquery 点击增加样式,点击移除样式

html代码:<div><ul><liclass="enable"></li><li></li><li></li><li></li></ul></div>js:用的是jq... html代码:
<div>
<ul>

<li class="enable"></li>
<li></li>
<li></li>
<li></li>

</ul>
</div>
js:用的是jquery-1.7.1.min.js
问题:点击一个li,背景换为#ccc,再点击换为#000;每个li是独立的。该怎样写js呢?
初学,求指教啊
展开
 我来答
兔丞飞
高粉答主

推荐于2019-10-04 · 专注娱乐 专注娱乐 专注娱乐
兔丞飞
采纳数:25 获赞数:19893

向TA提问 私信TA
展开全部

jquery 点击增加样式,点击移除样式,代码如下:

$("li").click(function(){

$(this).toggleClass("enable");

$(this).siblings().removeClass("enable");

})

扩展资料

如果用户单击某个按钮时,要删除class的某个值,那么可以使用与addClass()方法相反的removeClass()方法来完成,它的作用是从匹配的元素中删除全部或者指定的class。例如可以使用如下的JQuery代码来删除p元素中值为“high”的class:

$("p").removeClass("high");

//移除p元素中值为"high"的class

参考资料:百度百科 jQuery

百度百科 样式 (计算机术语)

阿刚炖蛋
推荐于2017-09-28 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:968万
展开全部

你好!!


这个问题,可以通过toggle()函数或者toggleClass()函数来解决:


toggle函数,因为本身是基于点击事件来进行事件切换的,因此这里只需要对li进行遍历即可:

$("ul >li").each(function(){
    $(this).toggle(
        function(){
            $(this).css("backgroundColor","#ccc");
        },
        function(){
            $(this).css("backgroundColor","#000");
        }
    );
});


toggleClass函数,需要在对li绑定click事件的基础上进行操作:

$("ul >li").click(function(){
    $(this).toggleClass(function(){
           //rgb(204, 204, 204)==#ccc
           if( $(this).css("backgroundColor")=="rgb(204, 204, 204)" ){
              $(this).css("backgroundColor","#000");
           }else{
              $(this).css("backgroundColor","#ccc");
           }
    });
});


补充一点的是:toggle在jQuery2.0中已经被删除了,

所以如果使用toggle函数还是注意jQuery的版本问题!


当然如果将#ccc和#000 写成 @小齐炖博士 的方式,操作起来更方便!


希望对你有帮助!!

追问
感谢您的帮助!无反应,用了博士的也无反应。复制了你代码过去,加载了css、js和jquery-1.7.1-min
追答

你好!!


<script>
$(function(){
    //代码是否写在这里?
});
</script>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
热带鱼Baby1
2022-01-04 · 超过11用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:20万
展开全部
假设有div元素<div id="mydiv" class="css1">,和两个样式: .css1{} .css2{}
(1)移除和添加样式分别是$("mydiv").removeClass("css1") 和$("mydiv").addClass("css1")
(2)如果是换了样式之后,想换回原来的样式,即是切换样式,那么就涉及到一个判断当前样式的问题,此时可以使用方法hasClass(),该方法是判断元素当前是否含有某样式。
(3)所以根据1、2可以实现一个点击切换样式的效果,示例代码如下:
<script type="text/javascript">
$("#mydiv").click(function () {
if ($(this).hasClass("css1")) {
$(this).removeClass("css1")
$(this).addClass("css2")
} else if ($(this).hasClass("css2")) {
$(this).removeClass("css2")
$(this).addClass("css1")
}
})
</script>
(手写不易,望采纳!)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
__峰回路转
推荐于2018-04-03 · TA获得超过714个赞
知道小有建树答主
回答量:605
采纳率:89%
帮助的人:312万
展开全部

这个用jQuery实现一般是添加一个类和删除一个类。

首先要有一个写好的class样式类。通过下面这个代码实现:

var obj2 = $("div");   // 改变样式的对象
obj2.addClass("className");  // 添加样式,className为已经存在一个class名字
obj2.removeClass("className");  // 删除样式
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nice卢大璐
2019-08-18
知道答主
回答量:1
采纳率:0%
帮助的人:691
展开全部

active 就是你想要添加的样式  

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式