2011-10-10 36 views
52

Có gì với phương pháp cắt jQuery?Đối tượng jQuery không hỗ trợ thuộc tính hoặc phương thức trim() trong IE

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

Object không hỗ trợ tài sản hoặc phương pháp 'cắt'

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

"5,1,1"

$('#Reminders').attr('value').split(',') 

[5,1,1] 
[0]: "5" 
[1]: "1" 
[2]: "1" 

tôi không có những tai ương trong FireFox hoặc Chrome ... chỉ có IE 9.0. Có cái gì đặc biệt về trim() ... Tôi đã không nhận được bản ghi nhớ.

Trả lời

91

IE không có phương thức string.trim().

Thay vào đó, bạn có thể gọi số $.trim(str) của jQuery.

0

Điều này không liên quan gì đến jquery. Attr đang trả về một chuỗi. Điều đó có nghĩa là IE không có phương thức cắt trên chuỗi.

10

Bạn có thể thêm phương pháp cắt() trên đối tượng String, cho các trình duyệt mà không hỗ trợ cho phương pháp này (IE như nhau).

Chỉ cần thêm những dòng này trước khi bạn gọi phương thức trim():

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

Vì vậy, bạn không ghi đè phương thức 'trim' nếu nó đã tồn tại, bạn có thể thực hiện:' String.prototype.trim = String.prototype.trim || function() { trả lại this.replace (/^\ s + | \ s + $/g, ''); } ' –

4

Cùng một vấn đề ở đây với IE không có phương pháp trim(). Tôi đã giải quyết bằng cách thêm trim() nếu nó không tồn tại.

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

Hoạt động tốt.

Các vấn đề liên quan