jQuery Object не поддерживает свойство или метод trim () в IE - PullRequest
52 голосов
/ 11 октября 2011

Что случилось с методом обрезки jQuery ??

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

Объект не поддерживает свойство или метод "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.Есть что-то особенное в отделке () ... Я не получил записку.

Ответы [ 5 ]

91 голосов
/ 11 октября 2011

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

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

10 голосов
/ 06 декабря 2012

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

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

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
}
6 голосов
/ 11 октября 2011

trim() не вызывается подобным образом в контексте jQuery.

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

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

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

См .: http://api.jquery.com/jQuery.trim/

4 голосов
/ 11 августа 2014

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

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

Прекрасно работает.

0 голосов
/ 11 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...