IE8中的未知JS错误

时间:2013-12-18 21:14:00

标签: javascript jquery

我正在使用js函数来更改我的html文档中li的类和文本。它在除IE8和IE7之外的每个浏览器中都能正常工作。我不知道是什么回应。这只是一个简单的功能。我没有得到任何线索谷歌它。

在组参数中,我传递javascript对象,如:

var group = {
    0: {
        class: "classname1",
        text: "mytext"
    },
    2: {
        removeClass: "classname2",
        text: 'mytext2'
    },
    remove: [4, 5]
}

if(!Array.isArray){         Array.isArray = function(vArg){             return Object.prototype.toString.call(vArg)===“[object Array]”;         };     }

function xyz(group, parent) {
    $.each(group, function (key, val) {
        if (Array.isArray(val)) {
            var $lis = $(parent).find("li");
            for (var i = $lis.length - 1; i >= 0; i--) {
                if (val.indexOf(i) > -1) $lis.eq(i).remove();
            }
        } else {
            $(parent).find('li').eq(key).removeClass(val.removeClass).addClass(val.class).text(val.text)
        }
    })
}

2 个答案:

答案 0 :(得分:4)

Array.isArray仅在IE9及更高版本中受支持。

将此代码放在代码前面以支持旧版本的IE:

if(!Array.isArray) {
  Array.isArray = function (vArg) {
    return Object.prototype.toString.call(vArg) === "[object Array]";
  };
}

来源:MDN

答案 1 :(得分:0)

从Microsoft,IE9 +。

之前不支持Array.isArray()

参考:http://msdn.microsoft.com/en-us/library/ie/ff848265(v=vs.94).aspx