本帖最后由 xiaofen8 于 2012-10-15 15:00:43 编辑

解决方案 »

  1.   

    <script>
    window.onload=function(){
        alert(document.getElementById("main").getElementsByTagName("div")[1].innerHTML)
    }
    </script>
    <div id="main">
     <div></div>
    <div>test</div>
    </div>上面这样写并不会有错的。
    document.getElementById("main").getElementsByTagName("div")[1]在各浏览器中应该都是可以使用的
      

  2.   

    document.getElementById("main").getElementsByTagName("div")[1]
    这样写是没问题的。
      

  3.   

    你在IE几里面测试的?我从IE6~8一点问题都没发现
    你要么就贴出使用部份的相关代码和DOM结构。要么就自己参照我上面的用法可以肯定的是:document.getElementById("main").getElementsByTagName("div")[1]
    功能是:获取id=main容器中的第二个div标签这样用不会有什么兼容性问题,也不会出错。如果你使用不行,要么就是这条语句执行的时候对象不存在,要么就是DOM不是那样的结构
      

  4.   

    看一下有没有2个以上的div
    alert(document.getElementById("main").getElementsByTagName("div").length);
      

  5.   

    果断 JQuery  !  方便,好用,又解决兼容性问题
      

  6.   

    你看一下有没有两个div,如果只有一个的话,把[1]改成[0]
      

  7.   


        function goto(index)
        {
            var maincon = document.getElementById("main");
            var auxcon = document.getElementById("auxiliary");
            
            for (var i = 0; i < maincon.childNodes.length; ++i)
                if (index - i)
                    maincon.childNodes[i].style.display = "none";
                else
                    switch(index){
                    case 1:
                        if (uname){
                            maincon.childNodes[i].style.display = "inline";//topic
                            auxcon.childNodes[1].style.display = "inline";//sidebar
                            maingoto(0);
                        }
                        else{
                            maincon.childNodes[i].style.display = "none";//topic
                            auxcon.childNodes[1].style.display = "none";//sidebar
                            index = 5;
                        }
                        break;
                    default:
                        maincon.childNodes[i].style.display = "inline";//topic
                    }
        }把这段js黏贴上来,这段代码在ie里可以正确运行,但是在firefox里就不行了,childNodes都是div,我把childNodes改为getElementsByTagName("div")还是不行,在ie里也不行
    要么就是DOM不是那样的结构这句话是什么意思?我是新手啦
      

  8.   

    其实只要你把childNodes改成children 就好了。。兼容问题。
      

  9.   

    children标准的?空白节点是什么啊
      

  10.   

    和innerHTML 一样,虽然不是标准的,但是在各个浏览器里都可以用。 你可以获取一下子节点,然后alert一下子节点的length就知道了。或者alert一下nodeType。
      

  11.   

    就是
    <div>
    <div></div>
                                                    //这里的换行在火狐貌似就会被看成其中的一个子节点。
    <div></div>
    </div>
      

  12.   

    但是我的代码里都没有空行的,把getElementsByTagName("div")换成chilren就可以正确运行了,我就搞不懂了