2013-08-01 25 views
5

Tôi đang cố gắng phát hiện xem phần tử đã chọn có chứa chỉ & nbsp không.Làm cách nào để lọc '& nbsp' trong jQuery?

Ví dụ:

if('td').is(':empty'){ 
    //do something... 
} 

Các mã trên sẽ có tác dụng nếu <td><td> nhưng không <td>&nbsp</td>.

Cách tốt nhất để lọc ra &nbsp là gì?

Trả lời

11

Bạn có thể cắt chuỗi đại diện:

if ($('td').text().trim() == ""){ 
    //do something... 
} 

Phải thừa nhận rằng, tôi là làm giả định khá táo bạo ở đây là nói chung bạn không muốn bất kỳ yếu tố ô trong bảng không có văn bản, bất kể đây là trường hợp <td> </td> hoặc <td><span></span></td>.

Nếu ví dụ thứ hai là một sai dương tính với mục đích của bạn, bạn có thể sử dụng một phiên bản chặt chẽ hơn, như vậy:

var td = $('td'); 
if ((td.children().length == 0) && td.text().trim() == ""){ 
    //do something... 
} 

Điều này đảm bảo td không được coi là một trận đấu nếu nó có các nút khác hơn các nút văn bản , bất kể nó không có văn bản.

5
if ($('td').html() == '&nbsp;') 
+3

Tôi nghĩ OP thực sự muốn khớp với bất kỳ biến thể trống nào - tức là. hoặc thực sự trống hoặc chỉ chứa khoảng trắng. Điều này chỉ phù hợp với nghĩa là một đơn   – SpoonMeiser

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