2011-06-23 14 views
14

Todavía estoy buscando una manera de eliminar ' ' de mi código html, encontré varias maneras en stackoverlow.com, ¡pero ninguna de esas costuras funciona!Eliminar ' ' - aún lo intento

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

Cualquier ayuda muy apreciada.
Pete

+1

Tal vez quieres decir ' ' not '& nbsp'. – Karolis

+0

@Karlois, @DanielB - perdón, corregido ahora. – Iladarsda

+0

Posible duplicado de [.trim() en JavaScript no funciona en IE] (http://stackoverflow.com/questions/2308134/trim-in-javascript-not-working-in-ie) –

Respuesta

25

Ésta sustituirá a cada carácter de espacio en blanco:

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

o si sólo desea reemplazar no separación espacios:

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

jsFiddle Demo

soy estableciendo el nuevo valor usando un closure as a parameter for .text().


Tenga en cuenta que las entidades HTML necesitan un cierre ; al final.

5

tratar

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

o si desea borrar la & nbsp tratar

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

También tenga en cuenta que el espacio es &nbsp; y no & nbsp (se echa en falta;)

1

Usted está replaceing el texto, pero no aplicar de nuevo. Además, utilizar $.trim para deshacerse de la &nbsp;

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

Basado en bažmegakapa' answer, esto se puede utilizar en los elementos que contiene otros elementos.

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

.text() se deshace de elementos HTML; .html() no lo hace

1

Aquí es una respuesta no jQuery, ya que el uso de jQuery para realizar esa tarea es una exageración a menos que ya lo está utilizando para otra cosa en su sitio:

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>

Cuestiones relacionadas