对象不支持属性或方法'item'IE 9

时间:2018-04-20 10:06:21

标签: javascript dom internet-explorer-9

我想找到所有的纽扣电影。在Chrome和现代浏览器中,这可以正常工作,但在ie9我有上述错误。我不能仅在页面上的javascript更改页面上的HTML。在chrome中我可以使用document.getElementsByClassName(),但是在9中我甚至不能,因为该网站必须与Quirks可比较运行。我已经尝试重写代码,没有这个工作,并相信我有代码的元素

if(navigator.userAgent.toLowerCase().indexOf('msie') != -1){
    if (document.all) {
        var allElements = document.all;
    } else {
        var allElements = document.getElementsByTagName("*");
    }

    // Empty placeholder to put in the found elements with the class name
    var oldHrefs = [];

    for (var i = 0, ii = allElements.length; i < ii; i++) {
        if (allElements[i].className == 'ButtonItem') {
            oldHrefs[oldHrefs.length] = allElements[i];
        }
    }   
}
else
{
    var oldHrefs = document.getElementsByClassName('ButtonItem');
}

但是我需要遍历代码并删除href并添加onclick,这是我恢复下一个错误的时候。对象不支持属性或方法'item'。有什么想法我可以做些什么来纠正下面的代码?

for (var i = 0; i < oldHrefs.length; i++) {
    var thisHref = oldHrefs.item(i).getAttribute('href');
    if (thisHref != null) {
        if (thisHref.includes('Act=1468')) {
            oldHrefs.item(i).removeAttribute("href");
            oldHrefs.item(i).setAttribute('onclick', 'window.location.href="' + thisHref + '";this.removeAttribute("onclick");');
        }
    }
}

由于

0 个答案:

没有答案