昨晚在做网站页面导航的时候,采用了jquery的技术做小导航切换,当用户在页面中点击导航就会弹出一个小的导航,因为我的操作系统是win7,所以浏览器安装的是默认IE8,系统上还安装了谷歌浏览器,当时做完以后在IE8浏览器上显示是没有任何问题的,在
谷歌浏览器上测试也是正常的,本来以为JS代码应该是没有问题了,但是后来发现在IE6却无法正常运行。下面是页面导航的JS代码:
$(function(){
$("#tr1 div").bind("click", function(){//给所有在tr1里面的DIV注册一个OnClick事件
var name = $(this).attr("id"); //获取ID
if(name.indexOf('p')=="0")
{
for(var k=1;k<15;k++)
{
var cid="child"+k;
if((name.length==7&&k==name.substring(6,7))||(name.length==8&&k==(name.substring(6,7)+name.substring(7,8))))
{
$("#"+cid+"").show();
}
else
{
$("#"+cid+"").hide();
}
}
}
});
});
$(function(){
$("#tr1 div").bind("click", function(){//给所有在tr1里面的DIV注册一个OnClick事件
var name = $(this).attr("id"); //获取ID
if(name.indexOf('p')=="0")
{
for(var k=1;k<15;k++)
{
var cid="child"+k;
if((name.length==7&&k==name.substring(6,7))||(name.length==8&&k==(name.substring(6,7)+name.substring(7,8))))
{
$("#"+cid+"").show();
}
else
{
$("#"+cid+"").hide();
}
}
}
});
});
刚开始的时候在
IE8浏览器下,我直接获取name的第一个字母,直接用数组的下标方法 name[0],可以获取在谷歌浏览器运行可以,但是我给我同事用的时候他的是
IE6说没反映,我刚开始没注意 还以为他是开玩笑,今天我用VS自带的浏览器浏览的时候发现真的有问题 ,郁闷,以为是jquery不兼容,找了半天都说jquery兼容性好,没有说兼容性不好的,我一步一步调试终于发现在判断name[0]==p这个问题上找到了,于是马上换代码name.substring(0,1),在进行测试,总算是没有问题了,有时候看似很小的问题却真是折磨人!提醒大家以后制作网页的时候如果需要使用的jquery,还需多注意跨浏览器的问题,以及编码的问题,在就是字符转义,需要多多考虑。
标签:IE8IE6JS字符IE Web