Reputation: 2386
What's up with the jQuery trim method??
jQuery('#Reminders').attr('value').trim()
Object doesn't support property or method 'trim'
jQuery('#Reminders').attr('value')
"5,1,1"
$('#Reminders').attr('value').split(',')
[5,1,1]
[0]: "5"
[1]: "1"
[2]: "1"
I don't have these woes in FireFox or Chrome ... only IE 9.0. Is there something special about trim() ... I didn't get the memo .
Upvotes: 52
Views: 28397
Reputation: 436
Same problem here with IE not having the trim()
method. I solved by adding the trim()
if it doesn't exist.
(function(str) {
if (typeof(str.prototype.trim) === 'undefined') {
str.prototype.trim = function() {
return $.trim(this);
};
}
})(String);
Works great.
Upvotes: 4
Reputation: 331
You can add trim() method on String object, for browsers without support for this method (IE alike).
Simply add these lines before you call trim() method:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
}
Upvotes: 10
Reputation: 33833
trim()
is not invoked like that in a jQuery context.
Once you call attr()
, that's the end of jQuery chaining. See http://api.jquery.com/attr/
To do this, do:
jQuery.trim(jQuery('#Reminders').attr('value'));
See: http://api.jquery.com/jQuery.trim/
Upvotes: 6
Reputation: 23796
This doesn't have anything to do with jquery. Attr is returning a string. What it means is that IE doesn't have a trim method on string.
Upvotes: 0
Reputation: 888185
IE doesn't have a string.trim()
method.
Instead, you can call jQuery's $.trim(str)
.
Upvotes: 92