2011-03-11 37 views
6

Tôi đã thử nghiệm những điều sau đây trong FF, OP, Chrome, Safari và IE. Nó hoạt động trong tất cả trừ 3 IES Tôi đã thử nghiệm: 8, 7 và 6.jQuery .trim() Câu hỏi về Khả năng tương thích với Trình duyệt IE

// truncate testimonial 
var visiblePara = $('div.bannerUnder p.show'); 
if (visiblePara.text().trim().length > 150) { 
    var text = visiblePara.text().trim(); 
    var author = $('div.bannerUnder p.show > strong').text(); 
    text = text.substr(0, 150) + "..."; 
    visiblePara.text(text).append("<strong>" + author + "</strong>"); 
} 

Nó nói:

Đối tượng không hỗ trợ tài sản hoặc phương pháp và các điểm đến dòng này:

if (visiblePara.text().trim().length > 150) { 

Điều gì có thể là vấn đề?

+0

@Patrick : 'length' là thuộc tính, không phải là hàm. –

+0

@Chuck: Bạn đã đổi tiêu đề thành "jQuery .length IE Browser Compatibility Question" nhưng đây không phải là về .length - đó là về .trim() không có sẵn trong IE trước phiên bản 8. – rsp

+0

Bắt tốt. Tôi sẽ thay đổi hàm thành .trim(), nhưng tôi đang cố gắng để lại tiêu đề câu hỏi trong bối cảnh ban đầu anh ta hỏi nó như thế nào. –

Trả lời

19

Hãy thử thay đổi:

visiblePara.text().trim().length 

tới:

$.trim(visiblePara.text()).length 

Bạn thậm chí có thể di chuyển biến văn bản lên, với một cái gì đó như thế này:

// truncate testimonial 
var visiblePara = $('div.bannerUnder p.show'); 
var text = $.trim(visiblePara.text()); 
if (text.length > 150) { 
    var author = $('div.bannerUnder p.show > strong').text(); 
    text = text.substr(0, 150) + "..."; 
    visiblePara.text(text).append("<strong>" + author + "</strong>"); 
} 
+1

cảm ơn vì đã cứu mạng tôi! – James

4

cắt không phải là một phương thức của String.prototype cho đến IE 8. Nó đã tồn tại trong các trình duyệt khác trong một thời gian.

Tôi đã thử nó trong IE8 và nó đã làm việc cho tôi. Sử dụng jQuery.trim()jQuery.trim(str) thay

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