WingMeng
2014-12-07 20:27
写了本节的这个Tab代码,源码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实践题 - 选项卡</title> <style type="text/css"> /* CSS样式制作 */ .ui-tab { width: 300px; margin: 20px auto; color: #333; font: 12px/1.8 'Microsoft Yahei'; } .ui-tab-title { list-style: none; margin: 0; padding: 0; } .ui-tab-title li { display: inline-block; *display:inline; *zoom:1; } .ui-tab-title a { width: 60px; line-height: 30px; display: block; color: #333; text-align: center; text-decoration: none; margin-left: 5px; border: 1px solid #ccc; border-bottom: none; } .ui-tab-title .current { border-top: 2px solid #936; border-bottom: 2px solid #fff; margin-bottom: -2px; } .ui-tab-cont { display: none; padding: 10px; border: 1px solid #069; border-top: 2px solid #936; line-height:2; } </style> <script type="text/javascript"> // JS实现选项卡切换 window.onload = function(){ var tab = document.getElementById("Tab"); var ul = tab.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); var div = tab.getElementsByTagName("div"); for(var i=0; i<li.length; i++){ li[i].getElementsByTagName("a")[0].onclick = function(){ // 初始化所有标题a标签和内容div标签 for (var j=0; j<li.length; j++){ ul.getElementsByTagName("a")[j].className = ""; div[j].removeAttribute("style"); } // 当前点击的a标签加上current类名 this.className = "current"; // 将对应的div内容显示出来 //alert(this.getAttribute("href").substr(1)); var a_href = this.getAttribute("href",2).substr(1); document.getElementById(a_href).style.display = "block"; return false; } } } </script> </head> <body> <!-- HTML页面布局 --> <div id="Tab"> <ul> <li><a href="#tab1">房产</a></li> <li><a href="#tab2">家居</a></li> <li><a href="#tab3">二手房</a></li> </ul> <div id="tab1" style="display:block"> 275万购昌平邻铁三居 总价20万买一居<br /> 200万内购五环三居 140万安家东三环<br /> 北京首现零首付楼盘 53万购东5环50平<br /> 京楼盘直降5000 中信府 公园楼王现房 </div> <div id="tab2"> 40平出租屋大改造 美少女的混搭小窝<br /> 经典清新简欧爱家 90平老房焕发新生<br /> 新中式的酷色温情 66平撞色活泼家居<br /> 瓷砖就像选好老婆 卫生间烟道的设计 </div> <div id="tab3"> 通州豪华3居260万 二环稀缺2居250w甩<br /> 西3环通透2居290万 130万2居限量抢购<br /> 黄城根小学学区仅260万 121平70万抛!<br /> 独家别墅280万 苏州桥2居优惠价248万 </div> </div> <p style="height:900px"> </p> </body> </html>
在实际测试中发现var a_href = this.getAttribute("href").substr(1);这句代码,在IE6/IE7下获取了a标签的相对路径,而在其它浏览器下获得了a标签的锚点路径,为什么会不同呢?
另外,从网上找到了解决IE6/7下该问题的方法,就是使用var a_href = this.getAttribute("href",2).substr(1);这句,getAttribute()的参数里多了个“2”,为什么这样就可以了?getAttribute()不是只有一个参数的吗?
这个是浏览器兼容性问题,某些浏览器下是会出现这个样的结果的,在前端开发中,浏览器兼容性问题是不可能避免的,肯定会出现的,这个就需要改动代码,或者去获取浏览器版本之后写相应的代码,而针对本节来说,右侧有源码下载可以参考,在IE7也是可以用的,请参阅
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题