<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <style> *{margin: 0;padding:0;} .box{width: 260px;height: 150px;background: #ffffff;position: absolute;top: 50%;left: 50%;margin:-75px auto auto -130px; } .group{ list-style: none; } .group>li{width: 250px;margin: 5px auto;text-align: center;line-height: 36px;color: white;border-radius: 5px;} .kid{width: 100%;height: 36px;background: #CD2626;cursor: pointer;border-radius: 5px;} .showHide{width: 100%;display: none;margin:5px auto;height:134px;} .showHide > ul > li{margin: 3px auto;background: #90e8ea;} </style> </head> <body> <div class="box"> <ul class="group"> <li> <div class="kid">first</div> <div class="showHide"> <img src="img/1.jpg" alt=""width="100%"/> </div> </li> <li> <div class="kid">second</div> <div class="showHide"> <img src="img/2.jpg" alt=""width="100%"/> </div> </li> <li> <div class="kid">third</div> <div class="showHide"> <img src="img/3.jpg" alt=""width="100%"/> </div> </li> </ul> </div> </body> <script> $(function(){ var index = 0; $('.kid').click(function(){ //这是方法一 /*if(index != $(this).text()){//如果点击的标签内容与index相等则执行以下事件 $('.showHide').slideUp();//将所有的showHide都关闭你掉 $(this).siblings().slideToggle();//打开点击的showHide标签 index = $(this).text();//将点击的标签内容赋值给index }else{//相等的情况执行以下事件即为第二次点击时 $('.showHide').slideUp();//关闭showHide标签 index = 0;//再将0赋值给index }*/ //这是方法二 $(this).siblings().slideToggle().parent().siblings().children(":last-child").slideUp(); //$(this).siblings()是找到showHide //$(this).siblings().slideToggle()是点击kid时显示或者关闭 //$(this).siblings().slideToggle().parent()是找到showHide的父级li //$(this).siblings().slideToggle().parent().siblings()是除点击此li之外的li //$(this).siblings().slideToggle().parent().siblings().children(":last-child")是找到未点击li的最后一个子级 //$(this).siblings().slideToggle().parent().siblings().children(":last-child").slideUp();是打开点击的图片,关闭未点击的图片 }) }); </script> </html>