使用jq写选项卡,告别了繁琐的循环以及命名规范

基本原理:

    1.当某一个btn被选中时,将这个btn的背景颜色设为橘色,其余兄弟btn背景颜色设为空(none)

    2.如果子div与btn的索引相同,就将这个div显示而其他兄弟div隐藏

      1).css函数参数2的回调函数方法;

      2).原生get方法再转jq对象 再进行设置的方法

      3).当前div使用show()方法,其余兄弟div使用hide()方法

    关键字:get()  siblings()  show()  hide()  css()

html页:

  4个btn,4个div

 <div id="wrap">
<button>btn1</button>
<button>btn2</button>
<button>btn3</button>
<button>btn4</button>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>

css页:

  大盒子当前无样式,在实际开发中需要指定其宽高;第一个btn背景色为橘黄色;第一个子项div显示,其余兄弟div隐藏

 #wrap div {
width: 300px;
height: 200px;
border: 1px solid red;
display: none;
} #wrap div:nth-of-type(1) {
display: block;
/* 第一个子项div显示 */
} #wrap button:nth-of-type(1) {
background: orange;
/* 第一个btn背景色为橘黄色; */
}

  

jquery页:

1)首先给btn绑定事件

$("#wrap button").click(function() {
//当btn被点击后发生的事件
})

    关键字: click();

2) 当btn被点击时,设置当前选中btn颜色为橘色,并且将其他兄弟btn背景色为空:

$(this).css("background", "orange").siblings("button").css("background", "none")

    关键字:  $(this);  css();   siblings()

3) 声明一个变量,这个变量保存了被选中的btn的下标

var $index = $(this).index();

    关键字:$index; $(this);index();

 // 1:找到所有的子div,并且设置css样式,如果某个div的索引与btn的索引相同,就让他显示
$("#wrap div").css("display", function(i) {
if (i == $index) {
return "block";
}
return "none";
})

    关键字:css() ; "display" ; i == $index;

  b:通过get()方法将子div的索引与当前btn的索引绑定,然后再将这个索引转变成jq对象,再使用jq方法将对应div显示

$($("#wrap div").get($(this).index())).css("display", "block").siblings("div").css("display", "none")

    由于get方法是js原生方法,所以应将其转成jq对象才能使用jq方法

    关键字: $()  ; $(this).index; get();css();siblings()    

  c:通过当前btn的索引绑定div的索引,进而将这个索引对应的div显示show(),并将其余的div兄弟元素隐藏hide()

$("#wrap div").eq($(this).index()).show().siblings("div").hide();

    关键字:eq();$(this).index();show();hide()

  这样,就完成了使用jQuery方法实现选项卡。

  以上。

  

jq方法写选项卡的基本原理以及三种方法的更多相关文章

  1. Linux中让终端输入变为非阻塞的三种方法

    介绍 在linux下每打开一个终端,系统自动的就打开了三个文件,它们的文件描述符分别为0,1,2,功能分别是"标准输入"."标准输出"和"标准错误输出 ...

  2. (六)C#中判断空字符串的三种方法性能分析

    三种方法分别是: string a=""; 1.if(a=="") 2.if(a==string.Empty) 3.if(a.Length==0) 三种方法是等 ...

  3. (转)JAVA 调用Web Service的三种方法

    1.使用HttpClient用到的jar文件:commons-httpclient-3.1.jar方法:预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. ...

  4. Java反射定义、获取Class三种方法

    反射机制的定义: 在运行状态时(动态的),对于任意一个类,都能够得到这个类的所有属性和方法.  对于任意一个对象,都能够调用它的任意属性和方法. Class类是反射机制的起源,我们得到Class类对象 ...

  5. python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  6. mysql 中添加索引的三种方法

    原文:http://www.andyqian.com/2016/04/06/database/mysqleindex/ 在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以 ...

  7. php将数组写入到文件的三种方法

    php将数组原样写入或保存到文件有三种方法可以实现, 第一种方法是使用serialize, 第二种方法是使用print_r, 第三种方法是使用var_export, 本文章向大家介绍这三种方法是如何将 ...

  8. Python使用三种方法实现PCA算法[转]

    主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...

  9. 应对加密js的三种方法

    经常遇到网页在登录后会对用户输入的帐号和密码通过js进行加密,导致模拟登录这类网站时受到阻碍 这里小记一下当前解决该问题的三种方法 1.利用python实现js同等加密. 2.利用selenium模拟 ...

随机推荐

  1. 【占坑】IDEA从github 导入并运行 SpringBoot + VUE项目

    最近工程实践的项目内容是开发一个类似于博客和bbs论坛的系统,在github上找了一个类似的项目可以照着写一写.所以这里先占着坑,等把后端的数据库连接学完了再来填坑. github项目链接:githu ...

  2. 基于Selenium+Python的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  3. WS的发布与调用

    WebService—CXF整合Spring实现接口发布和调用过程  https://www.cnblogs.com/domi22/p/8094517.html   spring 集成cxf 第二弹( ...

  4. 'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    一定要发现自己的问题不要盲目从众 1.把maven的安装包解压 2.配置环境变量 3.配置path路径 4.在dos下测试一下 结果出现:'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文 ...

  5. Nginx 反向代理基本框架

    全局配置指令:user nginx; 模块配置段 # 事件驱动模块,提供并发响应功能events{......}# http模块,提供web请求处理,可嵌套其他重要模块http{.......#ser ...

  6. Java 创建/识别条形码、二维码

    条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常用于标示物品的生产国.制造厂家.商品名称.生产日期.图书分类号.邮件起止地点.类别.日期等 ...

  7. Java定时发送邮件

    背景 甲方爸爸:新接入业务在国庆以及军运会期间需要每天巡检业务并发送邮件告知具体情况! 我司:没问题. 甲方爸爸:假期也要发噢. 我司:没问题(...). 刚开始计划指定几个同事轮流发送,业务只要不被 ...

  8. TestNG(十四) 线程测试

    package com.course.testng.thread; import org.testng.annotations.Test; public class multiThread { @Te ...

  9. IOS13系统升级带来的H5兼容性问题

    20号新推送的IOS13给很多app厂商和RD带来了便秘的感觉,目前复现的问题如下,后续还会持续更新: 1.H5 hybrid输入框导致的页面上移,卡住不动.收起减半后,页面出现半截白屏.(IOS12 ...

  10. java http/https后台上传服务器视频到接口

    没有代码得帖子都是耍流氓,废话不说,上代码 //上传视频    public static HttpEntity getMultiDefaultFileEntity(String pathlj,Str ...