你获取节点数的时候出问题...............在FF下,节点计算方法不同....你把第一个Ul下所有的li缩进,不要留空隙.就可以了

解决方案 »

  1.   

    function tabit(btn){
    var i =0,j=0;
        
        var tabNumber = btn.parentNode.childNodes.length;

    var idname = new String(btn.id);
        var s = idname.indexOf("_");
        var e = idname.lastIndexOf("_")+1;
        var tabName = idname.substr(0, s);

        while(i < tabNumber){

    if (btn.parentNode.childNodes[i].nodeType==1){

    document.getElementById(tabName + "_div_" + j).style.display = "none";
    document.getElementById(tabName+"_btn_"+j).className = "";
    j++;
    }
            i++; 
            
        };

        var id = parseInt(idname.substr(e, 1));
        document.getElementById(tabName+"_div_"+id).style.display= "";
        btn.className = "home";

    };
      

  2.   

    节点数计算的问题,你修改一下 tabs.js 文件,我简单提下思路,你可以自己再优化代码:
    function tabit(btn) {
    var idname = new String(btn.id);
    var s = idname.indexOf("_");
    var e = idname.lastIndexOf("_")+1;
    var tabName = idname.substr(0, s);
    var id = parseInt(idname.substr(e, 1));
    var oTab = btn.parentNode.childNodes; var k = 0, tabNumber = 0;
    while (k < oTab.length) {
    if (oTab.item(k).nodeName == 'LI')
    tabNumber = tabNumber + 1;
    k++;
    } for(i=0;i<tabNumber;i++){
    document.getElementById(tabName+"_div_"+i).style.display = "none";
    document.getElementById(tabName+"_btn_"+i).className = "";
    };
    document.getElementById(tabName+"_div_"+id).style.display = "block";
    btn.className = "home";
    }
      

  3.   

    function tabit(btn){
        var idname = new String(btn.id);
        var s = idname.indexOf("_");
        var e = idname.lastIndexOf("_")+1;
        var tabName = idname.substr(0, s);
        var id = parseInt(idname.substr(e, 1));
        //var tabNumber = btn.parentNode.childNodes.length;
    //=========>
    var tabNumber = btn.parentNode.getElementsByTagName("li").length;
        for(i=0;i<tabNumber;i++){
                document.getElementById(tabName+"_div_"+i).style.display = "none";
                document.getElementById(tabName+"_btn_"+i).className = "";
            };
            document.getElementById(tabName+"_div_"+id).style.display = "block";
            btn.className = "home";
    };
    而且你的css绝对有问题,重新写过css,不会用div+ul+css最好别用,要不css不正确你的页面在ff下就什么都不是
      

  4.   

    本人不懂js, 非常感谢3楼和4楼的朋友,你们的解决了问题.6楼的js不知道为什么不起作用呢? 是我的css错了吗?
      

  5.   

    对,在FF下计算结点会一起将文本信息也记录进去,甚至两个结点之间的空隙都会计算进去
    所以FF下的结点数总是会多于IE下的