纠正 IE 的 getElementById 的 BUG

作者:vkvi 来源:ITPOW(原创) 日期:2010-9-15

对开发人员来说,IE 的问题总是特别多,特别是 IE 6,郁闷的是,IE 6 总“死”不了。

IE 中,getElementById 有个 BUG,那就是如果对应的 id 不存在,它会查找 name 属性值等于对应 id 的元素。要修正这个问题,可参照下面的代码(ezj 中的代码):

function getById(id)
{
    var result = document.getElementById(id); // 不存在 parentElement.getElementById(id);
   
    // IE 有 BUG,把 name 和 id 混淆,故这里要判断
    if (result.id != id)
    {
        for (var i = 0; i < document.all[id].length; i++)
        {
            if (document.all[id][i].id == id)
            {
                result = document.all[id][i];
                break;
            }
        }
    }
   
    return result;
}
相关文章