2015-02-18 2 views
0

Я использую IE8, и я получаю сообщение об ошибке «Объекта не найден» с линией:IE8 Проблема с JQuery ATTR()

var l_classList = $(this).attr('class').trim().split(/\s+/); 

Фактический код блока следующим образом:

$("div.panel").each(function(index) { 
    var l_classList = $(this).attr('class').trim().split(/\s+/); 
    if (l_classList.length == 1) $(this).addClass("panel-default"); 
}); 

Любые идеи о том, как обойти это в IE8?

Спасибо.

+0

Вы пробовали '$ (это) .prop ("Classname")'? (Или просто 'this.className'?) – Pointy

+0

Пробовал оба ваших предложения и, к сожалению, не повезло. – tonyf

+0

Какая строка кода дает вам эту ошибку? (Кроме того, действительно ли это «объект не найден»? Это странная ошибка.) Их функция может быть не '.trim()' на прототипе String в IE8. – Pointy

ответ

0

IE8 не поддерживает метод trim().

Попробуйте добавить это в свои вспомогательные функции, а затем запустите свой скрипт.

if (!String.prototype.trim) { 
 
    (function() { 
 
     var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 
 
     String.prototype.trim = function() { 
 
      return this.replace(rtrim, ''); 
 
     }; 
 
    })(); 
 
}

+1

или просто использовать $ .trim() ....:) – Cracker0dks

+1

@ Cracker0dks просто добавил комментарий об этом к OP, вы избили меня до 4 секунд =] – yuvi

+1

@yuvi yeahh Im победитель: D – Cracker0dks

Смежные вопросы