неизвестная ошибка JS в IE8

0

Я использую функцию js для изменения класса и текста li в моем html-документе. Он работает отлично в каждом браузере, кроме IE8 и IE7. Я не отвечаю. Это просто простая функция. Я не понимаю, где это сделать.

В параметре group я передаю объект 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 ответа

4

Array.isArray поддерживается только в IE9 и выше.

Поместите это перед своим кодом, чтобы поддерживать более старые версии IE:

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

Источник: MDN

  • 0
    любая альтернатива для Array.isArray
  • 0
    +1 ответ и заполнить
Показать ещё 7 комментариев
0

Из Microsoft Array.isArray() не поддерживается до IE9+.

Ссылка: http://msdn.microsoft.com/en-us/library/ie/ff848265(v=vs.94).aspx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню