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


Что случилось с методом jQuery trim??

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. Есть ли что-то особенное в trim() ... Я не получил памятку .

5 52

5 ответов:

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

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

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

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

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

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

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

для этого:

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

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

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

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

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

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