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

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

5 ответов


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

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


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

просто добавьте эти строки перед вызовом метода 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 не имеет метода trim в строке.