jquery li点击时添加class,并且显示对应的div,隐藏其他的div,我下面的方法太麻烦了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery li点击时添加class,并且显示对应的div,隐藏其他的div,我下面的方法太麻烦了相关的知识,希望对你有一定的参考价值。

$(".action li").click(function ()
var index = $('.action li').index(this);
var i = index + 1;
$(".action li").removeClass('active');
$(".action li")
if(i == 1)

$('#action1').show();
$('#action2').hide();
$('#action3').hide();

if(i == 2)

$('#action2').show();
$('#action1').hide();
$('#action3').hide();

if(i == 3)

$('#action3').show();
$('#action2').hide();
$('#action1').hide();

);

参考技术A 貌似上次见到这个问题,还是你问的?

$("ul li").click(function()
var index = $("ul li").index($(this)); //你那个错了

$("div[id^='action']").hide(); //让id以action开关的div隐藏
$("#action"+(index+1)).show(); //让#actionX显示

);追问

显示隐藏的不是li,是div

追答

^= 选择器有点慢,最好把 action1, action2, action3都放到一个这种。

然后在你的$("ul li").click(function()
var index = $("ul li").index($(this)),

$divList = $("#actionList").children("div");
$divList.hide();
$divList.eq(index).show();
);

本回答被提问者采纳

jquery点击li标签之后在该li标签上添加一个class,点击下一个li时删除上一个li的class

思路:点击当前li元素后是用removeClass()删除所有兄弟元素(使用siblings()获取)的class样式,然后使用addClass()为当前li添加class

具体演示如下:

1、HTML结构:设计三个li元素

<ul id="test">

    <li>Glen</li>

    <li>Tane</li>

    <li>John</li>

</ul>

2、css样式:设计一个类selected,表示选中后的效果

<style>

    .selected{font-weight:bold; background: #ff99cc; color:#fff;}

</style>

3、jquery代码:

$(function(){

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

        $(this).siblings(‘li‘).removeClass(‘selected‘);  // 删除其他兄弟元素的样式

        $(this).addClass(‘selected‘);                            // 添加当前元素的样式

    });
}); 

 

以上是关于jquery li点击时添加class,并且显示对应的div,隐藏其他的div,我下面的方法太麻烦了的主要内容,如果未能解决你的问题,请参考以下文章

jquery点击li标签之后在该li标签上添加一个class,点击下一个li时删除上一个li的class

jquery如何实现点击LI标签和下面的LI互换顺序?

jquery 点击当前添加一个样式,在次点击取消这个样式,

js jq 点击a标签 显示对应的div

jquery判断是不是添加样式

jquery 怎么获取当前点击class 是第几个