IE7下对a标签使用getAttribute("href")得到的值与其它浏览器不一样,求教
写了本节的这个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()不是只有一个参数的吗?