getElementById的bug

200 阅读1分钟

举个例子:

这是name属性的div
这是id属性的div
通过document.getElementById("jsu");方法在chrome浏览器获取到第二个div元素是没错的。 但是在低版本IE浏览器(IE8以下),会获取到第一个div元素。

可以写一个兼容方法: var myGetElement = function(id){ var el = document.getElementById(id); if (!+"\v1") { // 如果是ie浏览器 if (el && el.id === id) { //找到元素并且元素id的值是对应的 return el; }else{ //获取全部id对应的元素集合 var els = document.all[id], n = els.length; for (var i = 0; i < n; i++) { //遍历集合 获取到对应id的元素 if (els[i].id === id) { return els[i]; } } } } return el; }