2011-11-07 7 views
15

Do hoàn cảnh ngoài tầm kiểm soát của tôi, SharePoint, tôi có đoạn mã sau đây.Ghép nối jquery .text() với  

var item = $('<span><font size=1>&nbsp;</font></span>').text() 

Tôi cố gắng để so sánh giá trị .text()-&nbsp; và không biết phải làm gì. Bước qua mã số item có vẻ bằng "" có ý nghĩa. Nhưng làm item == " " trả về false. So sánh này nên được thực hiện như thế nào?

EDIT: Ví dụ fiddle

http://jsfiddle.net/hUBeP/2/

+0

Có thực sự là [ký tự 0xA0] (http://www.fileformat.info/info/unicode/char/a0/index.htm) không? Nhưng tôi nghĩ rằng có thể phụ thuộc vào trình duyệt - tôi không muốn dựa vào điều đó. Nó có khớp với khoảng trắng không gian trống không? – Rup

+0

Kiểm tra điều này: http://stackoverflow.com/questions/5237989/nonbreaking-space – Samich

Trả lời

42

Hãy thử kiểm tra cho '\xa0' (đó là nhân vật tạo ra bởi &nbsp;):

var item = $("<span><font size=1>&nbsp;</font></span>").text(); 
alert("'" + item + "' " + (item == '\xa0')); 

http://jsfiddle.net/hUBeP/3/

+0

Điều này đã làm được! @Rup - Nó sẽ chỉ chạy trong IE để trình duyệt phụ thuộc không thực sự là một vấn đề. Chúc mừng. – anothershrubery

+0

Thực ra nó cũng hoạt động trong Firefox - và cũng có thể trong các trình duyệt khác. – ThiefMaster

+0

vâng tôi vô tình thêm bình luận cuối cùng chưa hoàn thành. Đã cập nhật! – anothershrubery

0

So sánh nó với &nbsp;, vì điều đó là nội dung bạn muốn khớp. Dường như không phải vì trình duyệt hiển thị là không gian, thay vì ký tự. So sánh nó với &nbsp; sẽ cho kết quả là hai bộ số &nbsp; s được so sánh hoặc hai không gian giống nhau được so sánh.

+0

Về mặt kỹ thuật, tôi có thể so sánh nó với '$ ("

 

") .text()'. Nhưng giải pháp của ThiefMaster thì sạch hơn nhiều. – anothershrubery

+0

Đồng ý, đặc biệt là vì bạn không quan tâm đến các vấn đề liên quan đến trình duyệt. – yoozer8