2011-06-23 14 views
14

Vẫn đang tìm cách xóa ' ' khỏi mã html của tôi, tìm thấy số cách trên stackoverlow.com, nhưng cả hai đường nối đó đều không hoạt động!Xóa ' ' - vẫn đang cố gắng

HTML

<p>No Space</p> 
<p>&nbsp;1 Space</p> 
<p>&nbsp;&nbsp;2 Spaces</p> 
<p>&nbsp;&nbsp;&nbsp;3 Spaces</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;4 Spaces</p> 

jQuery

$(document).ready(function() { 

    $('p').text().replace(/ /g, ''); 
    //$('p').html($(this).html().replace(/&nbsp;/gi,'')); 

}); 

jsfiddle - sân chơihttp://jsfiddle.net/MrTest/hbvjQ/85/

Bất kỳ giúp nhiều đánh giá cao.
Pete

+1

lẽ bạn có nghĩa là '  'không phải' & nbsp'. – Karolis

+0

@Karlois, @DanielB - xin lỗi, đã sửa ngay. – Iladarsda

+0

Bản sao có thể có của [.trim() trong JavaScript không hoạt động trong IE] (http://stackoverflow.com/questions/2308134/trim-in-javascript-not-working-in-ie) –

Trả lời

25

một này sẽ thay thế tất cả các nhân vật white-space:

$('p').text(function (i, old) { 
    return old.replace(/\s/g, '') 
}); 

Hoặc nếu bạn chỉ muốn thay thế không bị phá hủy không gian:

$('p').text(function (i, old) { 
    return old.replace(/\u00A0/g, '') 
}); 

jsFiddle Demo

Tôi đặt giá trị mới bằng cách sử dụng closure as a parameter for .text().


Xin lưu ý rằng thực thể HTML cần đóng ; cuối cùng.

5

thử

$('p').each(function() { 
    $(this).html($(this).html().replace(/ /g, '')); 
}); 

hoặc nếu bạn muốn xóa các & nbsp thử

$('p').each(function() { 
     $(this).html($(this).html().replace('&nbsp;', '')); 
}); 

cũng xin lưu ý không gian đó là &nbsp; và không & nbsp (bạn đang thiếu;)

1

Bạn đang replaceing văn bản, nhưng không áp dụng nó trở lại. Bên cạnh đó, sử dụng $.trim để thoát khỏi các &nbsp;

$('p').text(function(i,e){ 
     return $.trim(e.replace(/ /g, '')); 
    }); 
3

Dựa trên bažmegakapa' answer, điều này có thể được sử dụng trên các yếu tố chứa các yếu tố khác.

$('p').html(function (i, old) { 
    return old.replace(/&nbsp;/g, '') 
}); 

.text() loại bỏ các phần tử html; .html() không

1

Dưới đây là một câu trả lời không jQuery, kể từ khi sử dụng jQuery cho một nhiệm vụ như vậy là quá mức cần thiết trừ khi bạn đã sử dụng nó cho một cái gì đó khác trên trang web của bạn:

var p = document.getElementsByTagName('p'); 
 

 
Array.prototype.forEach.call(p, function(el) { 
 
    el.innerHTML = el.innerHTML.replace(/&nbsp;/gi, ''); 
 
});
<p>No Space</p> 
 
<p>&nbsp;1 Space</p> 
 
<p>&nbsp;&nbsp;2 Spaces</p> 
 
<p>&nbsp;&nbsp;&nbsp;3 Spaces</p> 
 
<p>&nbsp;&nbsp;&nbsp;&nbsp;4 Spaces</p>