Подтвердить что ты не робот

Объект jQuery не поддерживает свойство или метод trim() в IE

Что происходит с методом обрезки jQuery?

jQuery('#Reminders').attr('value').trim()

Объект не поддерживает свойство или метод "обрезка"

jQuery('#Reminders').attr('value')

"5,1,1"

$('#Reminders').attr('value').split(',')

[5,1,1]
[0]: "5"
[1]: "1"
[2]: "1"

У меня нет этих проблем в FireFox или Chrome... только в IE 9.0. Есть что-то особенное в trim()... Я не получил записку.

4b9b3361

Ответ 1

IE не имеет метода string.trim().

Вместо этого вы можете вызвать jQuery $.trim(str).

Ответ 2

Вы можете добавить метод trim() объекта String, для браузеров без поддержки этого метода (как IE).

Просто добавьте эти строки, прежде чем вы вызовете метод trim():

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
}

Ответ 3

trim() не вызывается так в контексте jQuery.

Как только вы вызываете attr(), это конец цепочки jQuery. См. http://api.jquery.com/attr/

Для этого выполните:

jQuery.trim(jQuery('#Reminders').attr('value'));

Смотрите: http://api.jquery.com/jQuery.trim/

Ответ 4

Такая же проблема здесь, когда IE не имеет метода trim(). Я решил, добавив trim(), если он не существует.

(function(str) {
    if (typeof(str.prototype.trim) === 'undefined') {
        str.prototype.trim = function() {
            return $.trim(this);
        };
    }
})(String);

Отлично работает.

Ответ 5

Это не имеет ничего общего с jquery. Attr возвращает строку. Это означает, что IE не имеет метода обрезки в строке.