肯定不是循环所有标签,我猜是使用类似java里的hashMap或者是为id建立了一个B树索引之类就像数据库里的id一样

解决方案 »

  1.   

    根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。
      

  2.   

    根据指定的 id 属性值得到对象。  这个是怎么找的我们调用document.getElementById('id')其实得到的就是一个js dom元素对象,这个是浏览器帮我们返回的一个对象句柄,浏览器在解析完一个html文档后会创建很多的dom js对象的,我们可以通过调用这些js对象的方法来操作这些对象对应的html元素;
      

  3.   

    这个可能浏览器不同不一样, 在生成DOM 时就添加到管理器里了
    像IE,chrome 的 document.all<button onclick="test()">test</button>
    <script  >
    var a=document.all,i=0;
    function test(){
    document.body.insertAdjacentHTML('beforeEnd','<a id="a'+i+'" >'+i +'</a>');
    alert( a["a"+i  ].innerHTML );//通过 a 取到新生成的元素
    i++
    }
    </script>
      

  4.   

    通俗点就是你自己new一个对象,可以根据方法得到这个对象;
    HTML被浏览器解析的过程就是初始化了很多对象,你直接用方法得到对象;这也是浏览器不一样,好多方法不兼容的原因;
      

  5.   

    比如我有100W个标签在页面上,当然dom树中也就有这100W个标签对象了,它们的id都不一样. 如果我用getElementById传了一个id去找, js引擎总不会直接循环这个100W个对象比较id属性吧?  不知道你明白我的意思没