2012-12-03 27 views
16

Như đã thảo luận trong nhiều câu hỏi trên ngăn xếp - IE 8 sẽ không chấp nhận .trim(), nhưng khung công tác jQuery sẽ xử lý điều đó.Cách sử dụng hàm trim() của jQuery

Tôi không biết cách dịch hàm của mình để sử dụng phiên bản cắt đó (tôi nghĩ mình đã sử dụng jQuery), ai đó có thể tư vấn? Đây là mã của tôi:

$('input').val(function(index, val){ 
    return val.replace('Please Select', '').trim(); 
}); 

Điều này được thiết kế để thay thế chuỗi không có gì.

Tôi đã thử:

$('input').val(function(index, val){ 
    return val.replace('Please Select', '')$.trim(); 
}); 

nhưng đó là không tốt.

Trả lời

26
$.trim(val.replace('Please Select', '')) 

http://api.jquery.com/jQuery.trim/

+1

Cảm ơn -xác nhận nó phải đơn giản, cảm ơn cho liên kết tới tài liệu. Tôi sẽ chấp nhận khi nó cho phép tôi. – Gideon

4

Hãy thử điều này:

$.trim(val.replace('Please Select', '')); 

Đây là Trim() mục trong tài liệu.

7

IE8 không có trim phương pháp tự nhiên, nói chung, tôi chỉ làm tăng thêm nguyên mẫu:

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

Đây là regex ngắn nhất để cắt một chuỗi, nhưng tôi đã nghe nó nói rằng .replace(/^\s\s*/,'').replace(/\s*\s$/,'') là (nhẹ) nhanh hơn ... lựa chọn là của bạn

Nếu bạn thực sự muốn sử dụng jQuery cho điều này, tất nhiên, bạn sẽ phải tạo chuỗi đích ngữ cảnh của phương thức được gọi ($.trim gọi phương thức trên $ == = đối tượng jQuery), do đó, hãy tạo String thành đối tượng jQ:

$(' foo bar ').trim();//returns "foo bar" 
//compared to augmented prototype: 
' foo bar '.trim();//returns "foo bar" 

Lợi ích của nguyên mẫu tăng cường là bạn không có thêm chi phí tạo đối tượng jQuery mới, trong khi sử dụng phương pháp tiếp cận nguyên mẫu dựa trên JS để bọc chuỗi trong đối tượng String gốc và áp dụng phương pháp đó. Về cơ bản, nó là hoạt động tương tự, nhưng nó nên có hiệu quả hơn một chút, bởi vì jQuery thực hiện một loạt các kiểm tra tới bất kỳ chuỗi nào được truyền cho hàm tạo jQuery ($())

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