2011-06-23 19 views
14

Nadal szukam sposobu, aby usunąć ' ' z mojego kodu html, znaleźć wiele sposobów na stackoverlow.com, ale żaden z tych szwów do pracy!Usuń " " - wciąż próbuję

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 - plac zabawhttp://jsfiddle.net/MrTest/hbvjQ/85/

Każda pomoc mile widziane.
Pete

+1

Maybe masz na myśli ' ' nie '& nbsp'. – Karolis

+0

@Karlois, @ Danielaniel - przepraszam, poprawione. – Iladarsda

+0

Możliwy duplikat [.trim() w JavaScript nie działa w IE] (http://stackoverflow.com/questions/2308134/trim-in-javascript-not-working-in-ie) –

Odpowiedz

25

Ten zastąpi każdy znak white-space:

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

Lub jeśli chcesz tylko wymienić non-breaking przestrzenie:

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

jsFiddle Demo

jestem ustawianie nowej wartości za pomocą closure as a parameter for .text().


Należy pamiętać, że jednostki HTML wymagają zamknięcia na końcu ;.

5

spróbować

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

lub jeśli chcesz usunąć & nbsp spróbować

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

również pamiętać, że przestrzeń jest &nbsp; i nie & nbsp (brakuje;)

1

Jesteś replaceing tekst, ale nie stosowanie go z powrotem. Ponadto, należy $.trim aby pozbyć się &nbsp;

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

podstawie bažmegakapa' answer, to można stosować na elementach zawierające inne elementy.

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

.text() pozbywa elementów html; .html() nie

1

Oto odpowiedź non-jQuery, ponieważ przy użyciu jQuery dla takiego zadania jest przesada, chyba że używasz już go na coś innego na swojej stronie:

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>