html获取页面选项,javascript通过获取html标签属性class实现多选项卡的方法

原生javascript通过获取html标签属性class实现多选项卡

.tab {

clear: both;

margin: 20px auto;

padding: 10px;

width: 680px;

overflow: hidden;

}

.tab .tab-menu {

margin: 0;

padding: 0;

list-style: none;

}

.tab .tab-menu li {

display: inline;

margin: 0 2px 0 0;

}

.tab .tab-menu li a {

padding: 0 1em;

text-decoration: none;

color: #a80;

background: #fe5;

}

.tab .tab-menu li a:hover {

background: #fc0;

color: #540;

}

.tab .tab-menu .active {

}

.tab .tab-menu .active a {

padding-bottom: 2px;

font-weight: bold;

color: black;

background: #fc0;

}

.tab .tab-panel {

padding: 1em;

border: 2px solid #fc0;

background: #fff;

}

.tab .tab-panel h2 {

font-size: 1.5em;

color: #fc0;

}

.tab .tab-none {

display: none;

}

function Tab(style, scope){

this.oItem = this.getByClass(style, scope);

this.init();

}

Tab.prototype = {

init: function(){

var that = this, menu, m;

for(var i = 0, len = this.oItem.length; i < len; i++){

menu = this.oItem[i].getElementsByTagName('li');

for(var j = 0, mLen = menu.length; j < mLen; j++){

m = menu[j];

m.index = j;

m.onmouseover = function(){that.focus(this);}

}

}

},

focus: function(o){

var par = o.parentNode.parentNode, panel = par.getElementsByTagName('div'),

btn = par.getElementsByTagName('li'), len = btn.length;

for(var i = 0; i < len; i++){

btn[i].className = '';

panel[i].className = this.changeClass(panel[i].className, 'tab-none', true);

}

o.className = 'active';

panel[o.index].className = this.changeClass(panel[o.index].className, 'tab-none', false);

},

changeClass: function(cl, cl2, add){

var flag;

if(cl.match(cl2) != null) flag = true;

if(add ^ flag) return flag ? cl.replace(cl2, '') : cl += ' ' + cl2;

return cl;

},

getByClass: function(cla, obj){

var obj = obj || document, arr = [];

if(document.getElementsByClassName){

return document.getElementsByClassName(cla);

} else {

var all = obj.getElementsByTagName('*');

for(var i = 0, len = all.length; i < len; i++){

if(all[i].className.match(cla) != null) arr.push(all[i]);

}

return arr;

}

}

}

window.onload = function(){

new Tab('tab-menu', null);

}

111

122

133

211

222

233

311

322

333

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值