原生JS 选项卡代码实现
可实现同页面多个选项卡
效果图:

代码实现:
HTML部分
<div class="main" id="tabs">
<div class="tabDiv">
<a href="javascript:;" class="on">选项一</a>
<a href="javascript:;">选项二</a>
<a href="javascript:;">选项三</a>
</div>
<div class="con">
1111111111111111111111111
</div>
<div class="con">
2222222222222222222222222
</div>
<div class="con">
3333333333333333333333333
</div>
</div> <div class="main" id="tabs1">
<div class="tabDiv">
<a href="javascript:;" class="on">选项一</a>
<a href="javascript:;">选项二</a>
<a href="javascript:;">选项三</a>
</div>
<div class="con">
1111111111111111111111111
</div>
<div class="con">
2222222222222222222222222
</div>
<div class="con">
3333333333333333333333333
</div>
</div>
JS部分
fnTab("tabs");
fnTab("tabs1");
function fnTab(id){
var parentEle = document.getElementById(id);
var tabTools = getByClass(parentEle,"tabDiv")[0].getElementsByTagName("a");
var conArr = getByClass(parentEle,"con");
conArr[0].className += " active";
for(var i=0;i<tabTools.length;i++){
(function(i){
tabTools[i].onclick = function(){
for(var j=0;j<conArr.length;j++){
removeClass(tabTools[j],"on");
removeClass(conArr[j],"active");
}
addClass(tabTools[i],"on");
addClass(conArr[i],"active");
}
})(i);
}
}
function getByClass(oParentEle,sClass){
if(oParentEle.getElementsByClassName){
var oEles = oParentEle.getElementsByClassName(sClass);
return oEles;
}else{
var oEles = oParentEle.getElementsByTagName("*");
var aRes = [];
for(var i=0;i<oEles.length;i++){
if(oEles[i].className == sClass){
aRes.push(oEles[i]);
}
}
return aRes;
}
}
function addClass(ele,className){
if(ele && ele.nodeType == 1){
var reg = new RegExp("\\b"+className +"\\b","g");
if(!reg.test(ele.className)){
ele.className += " "+className;
}
}
}
function removeClass(ele,className){
if(ele && ele.nodeType == 1){
var reg = new RegExp("\\b"+className +"\\b","g");
if(reg.test(ele.className)){
ele.className = ele.className.replace(reg,"");
}
}
}
原生JS 选项卡代码实现的更多相关文章
- 原生js一行代码实现简易轮播图
这是一个简易的js无限循环轮播图,只用了一行js代码就实现了无限循环,记录一下三目运算符的伟大! <!DOCTYPE html><html lang="en"&g ...
- 原生js扫雷代码
思路要点: 1. 随机地雷放到一个二维数组中: 2. 每一个格子要统计周围有几颗雷: 3. 每一个格子是否处于打开状态,用于判断是否赢得游戏: 4. 如果点击到周围没有雷的地方,把周围的打开: 具体的 ...
- 原生JS常用代码汇总
数组相关 var codes = new Array( ); //创建数组codes.length //数组长度 动态插入数组 codes.push(value);
- 原生js选项卡
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 原生js简易日历效果实现
这里我们将用原生js实现简易的日历,原理和之前的原生js选项卡差不多,不过也有些区别: 首先html代码: <div class="container"> <di ...
- 抛弃JQ,回归原生js……
之前我写过一篇文章叫做<jq不会被淘汰>--而事实上它真的不会被淘汰,因为即使在mvvm框架盛行的今天,原生js的api越来越友好的今天,jq依然在用户量上是霸主-- 但是今天我们要讨论的 ...
- 原生js瀑布流
HTML部分代码............................... CSS部分代码........................... 原生js部分代码................. ...
- jQuery和原生JS的对比
原生JS的缺点: 不能添加多个入口函数(window.onload),如果添加了多个,后面的会把前面的覆盖掉 原生js的api名字太长,难以书写,不易记住 原生js有的代码冗余 原生js中的属性或者方 ...
- 原生js实现tab选项卡里内嵌图片滚动特效代码
<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8&quo ...
随机推荐
- 字符串[未AC](后缀自动机):HEOI 2016 str
超级恶心,先后用set维护right,再用主席树维护,全部超时,本地测是AC的.放心,BZOJ上还是1S限制,貌似只有常数优化到一定境界的人才能AC吧. 总之我是精神胜利了哦耶QAQ #include ...
- 数据结构:(平衡树,链表)BZOJ 1588[HNOI2002]营业额统计
1588: [HNOI2002]营业额统计 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 12173 Solved: 4354[Submit][Sta ...
- SPJ
1. ∏sno(δjno='j1'(spj))2. ∏sno(δpno='p1'(δjno='j1'(spj)))3. ∏sno(δjno='j1'(spj)∞δcolor='红'(p))4. ∏jn ...
- openStack CentOS虚拟桌面iptables初始化配置
- getting start with storm 翻译 第八章 part-2
转载请注明出处:http://blog.csdn.net/lonelytrooper/article/details/12435641 The Bolts 首先我们看一下该topology中的标准bo ...
- sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法
这是由于链接的数据库服务器的版本与本地数据库服务器不一致,有人说要升到sp3,sp4,然后在执行什么语句之类的 我觉得太繁琐了,通过网上查询之后看到可以这么做: USE master GRANT EX ...
- 谈NOT IN和Exists
表1: test001 select * from test001
- linux —— 学习笔记(软件操作:安装、卸载、执行)
目录: 0.相关基本命令 1.安装软件 2.卸载软件 3.打开软件 0.相关基本命令 与软件操作相关的主要命令有:dpkg 和 apt-get . dpkg : “dpkg ...
- 005_MyEclipse编码设置
方法一: 1.打开MyEclipse,windows---->Preferences打开"首选项"对话框. 2.左侧导航,导航中找到general---->Worksp ...
- 必胜宅急送Web app设计背后的思考
O2O模式是餐饮业在移动消费趋势下主动拥抱互联网的方向,迎合餐饮消费者从以往经验判断为主转变为依靠移动设备.lbs.社交网络进行立体决策的过程.继App客户端之后,手机web app也逐渐成为O2O中 ...