jquery按元素索引匹配控制层的显示、隐藏

工作中接触到一专题的结构比较特殊,代码如下:

 代码如下 复制代码

 <div class="test">
     <ul class="list">
       <li>1</li>
       <li>2</li>
       <li>3</li>
       <li>4</li>
       <li>5</li>
     </ul>
     <div class="part">
       <div>1-1</div>
       <div style="display:none;">2</div>
       <div style="display:none;">3</div>
       <div style="display:none;">4</div>
       <div style="display:none;">5</div>
     </div>
   </div>
   <div class="test">
     <ul class="list">
       <li>1</li>
       <li>2</li>
       <li>3</li>
       <li>4</li>
       <li>5</li>
     </ul>
     <div class="part">
       <div>2-1</div>
       <div style="display:none;">2-2</div>
       <div style="display:none;">2-3</div>
       <div style="display:none;">2-4</div>
       <div style="display:none;">2-5</div>
     </div>
   </div>

要求点击每个.list下的li标签,控制该.list下同级的.part的div层的显示,同时不能影响页面其它的.list相关的层的显示!

刚开始觉得处理这个没什么技术难度,但动手的的时候还是遇到了点小问题,记录下实现代码

 代码如下 复制代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Examples</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <link href="" rel="stylesheet">
    <style>
    *{margin: 0;padding: 0;}
    .test{padding:20px;}
    .test ul{overflow: hidden;}
    .test ul li{width:50px;height: 30px;margin-right: 10px; border-bottom: 1px red solid;float: left; cursor: pointer;}
</style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
</head>
<body>
    <div class="test">
        <ul class="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
        </ul>
        <div class="part">
            <div>1-1</div>
            <div style="display:none;">2</div>
            <div style="display:none;">3</div>
            <div style="display:none;">4</div>
            <div style="display:none;">5</div>
        </div>
    </div>
    <div class="test">
        <ul class="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
        </ul>
        <div class="part">
            <div>2-1</div>
            <div style="display:none;">2-2</div>
            <div style="display:none;">2-3</div>
            <div style="display:none;">2-4</div>
            <div style="display:none;">2-5</div>
        </div>
    </div>
    <script>
        var index,
            parent;
        $(".list >li").each(function(i, el) {/* 多个.list下的li索引会累加,即i取值为:0<=i<=9 */
            $(this).click(function(event) {
                parent=$(this).parents(".test");
                index=$(".list >li",parent).index($(this));//获得点击项在对应父元素.test .part 下的索引,而不是取each()中的i值
                // console.log(index);
                parent.children('.part').find('div').eq(index).show().siblings().hide();
            });
        });
    </script>
</body>
</html>

时间: 2024-08-02 12:08:45

jquery按元素索引匹配控制层的显示、隐藏的相关文章

jquery获取元素索引值index()方法

 这篇文章主要介绍了jquery获取元素索引值index()方法,需要的朋友可以参考下 jquery获取元素索引值index()方法:   jquery的index()方法 搜索匹配的元素,并返回相应元素的索引值,从0开始计数.    如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置.  如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置.  如果参数是一个选择器,那么返回值就是原先元素相对

jquery获取元素索引值index()示例_jquery

jquery获取元素索引值index()方法: jquery的index()方法 搜索匹配的元素,并返回相应元素的索引值,从0开始计数. 如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置. 如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置. 如果参数是一个选择器,那么返回值就是原先元素相对于选择器匹配元素中的位置.如果找不到匹配的元素,则返回-1. 复制代码 代码如下: <ul> <

jquery获取元素索引值index()的例子

如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置. 如果参数是一个选择器,那么返回值就是原先元素相对于选择器匹配元素中的位置.如果找不到匹配的元素,则返回-1. 第一个匹配元素的 index,相对于同胞元素 获得第一个匹配元素相对于其同胞元素的 index 位置. 语法 $(selector).index() 试一下  代码如下 复制代码 <html> <head> <script type="text/javascript

jquery绝对定位元素用offset设置偏移,显示位置不对

问题描述 jquery绝对定位元素用offset设置偏移,显示位置不对 在做搜索框,根据输入内容去后台匹配数据显示到输入框下的div里, 一个没定位的input,一个绝对定位的div,获取input的offset直接赋值给div, 结果div在input下面,两个元素的内外边距都用内联方式设置为0了 (这个页面是嵌在父页面dialog的iframe里的, 看起来就好像div的top多加了dialog标题栏的高而input没有, 因为我用top减了标题栏的高之后两个元素基本重叠了,而且单独打开这个

jsp 页面之间的跳转,控制层的显示问题

问题描述 jsp 页面之间的跳转,控制层的显示问题 有没有办法能达到这样的效果? 有两个JSP页面,a.jsp,b.jsp.b页面中有两个层 当从a页面跳转到b页面时只显示b页面中的一个层的内容 解决方案 http://blog.sina.com.cn/s/blog_773505170100snrd.html 获取来源页做判断 解决方案二: 可以把你要显示的层的ID拼接在 跳转URL?id=要显示层的ID. 然后在你 B.jsp 的JS 里面 接受id 的值 var id='<%= reques

js控制TR的显示隐藏_javascript技巧

下文分享的一段代码:选择是的按钮就显示身高和体重的文本框的代码.注意:ready方法必须要引用jquery的库. 1.html Code <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <style type="text/css&

jquery获取当前元素索引值用法实例_jquery

本文实例讲述了jquery获取当前元素索引值用法.分享给大家供大家参考.具体如下: 今天在做促销页面的图片轮转效果时,下方页码的左边需要对应显示图片的说明信息,效果如下: 思路: 页面部分当为当前状态的时候,会添加"active"样式. 通过获取 li class="active" 的索引值,对应找到相应的图片说明信息,显示出来. 解决: 通过jquery的 index() 可以很轻松的实现该效果. 代码如下: HTML: <div id="caro

jQuery实现获取元素索引值index的方法_jquery

本文实例讲述了jQuery实现获取元素索引值index的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

有谁知道控制层显示位置的控件的吗

问题描述 我想实现拖拽层来控制层的显示位置,类型google的个性化设置,可以任意拖动,谁有控制层显示位置的控件吗? 解决方案 Jquery的sortables插件解决方案二:这个用js也可以实现.具体实现方法你上网能找到解决方案三:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html&g