2011-10-10 30 views
52

怎麼了jQuery修剪方法?jQuery對象不支持屬性或方法修剪()在IE瀏覽器

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()有什麼特別的...我沒有得到備忘錄。

回答

91

IE沒有string.trim()方法。

相反,你可以調用jQuery的$.trim(str)

0

這與jquery沒有任何關係。 Attr返回一個字符串。這意味着IE瀏覽器在字符串上沒有修剪方法。

10

可以String對象上添加裝飾()方法,針對瀏覽器不支持此方法(IE一樣)。

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

所以你不要覆蓋'trim'方法,如果它已經存在,你可以這樣做:'String.prototype.trim = String.prototype.trim || function(){ return this.replace(/^\ s + | \ s + $/g,''); }' –

4

同樣在這裏與不具有trim()方法IE問題:

調用TRIM()方法之前,只需添加這些行。如果它不存在,我通過添加trim()解決。

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

工程很好。

相關問題