web-dev-qa-db-fra.com

Supprimer «nbsp;» - en train d'essayer

Toujours à la recherche d'un moyen de supprimer ' ' à partir de mon code html, trouvé plusieurs façons sur stackoverlow.com, mais aucune de ces coutures ne fonctionne!

[~ # ~] 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 - aire de jeux http://jsfiddle.net/MrTest/hbvjQ/85/

Toute aide très appréciée.
Pete

24
Iladarsda

Vous avez & nbsp dans votre code au lieu de &nbsp;

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

http://jsfiddle.net/genesis/hbvjQ/76/

44
genesis

Celui-ci remplacera chaque caractère d'espace blanc:

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

Ou si vous souhaitez uniquement remplacer les espaces insécables:

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

démo jsFiddle

Je fixe la nouvelle valeur en utilisant un fermeture comme paramètre pour .text() .


Veuillez noter que les entités HTML ont besoin d'une fermeture ; À la fin.

27
kapa

Voici une réponse non jQuery, car utiliser jQuery pour une telle tâche est exagéré, sauf si vous l'utilisez déjà pour autre chose sur votre site:

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>
6
rnevius

essayer

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

ou si vous souhaitez supprimer le & nbsp essayez

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

veuillez également noter que l'espace est &nbsp; et non & nbsp (il vous manque;)

5
kleinohad

Basé sur réponse de bažmegakapa , ceci peut être utilisé sur des éléments contenant d'autres éléments.

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

.text() se débarrasse des éléments html; .html() ne fonctionne pas

5
fregante

Voici le code:

$('p').each( function() {
    var elem = $( this );
    elem.html( elem.html().replace( /&nbsp;/g,'' ) );
} );

Et voici jsfiddle: http://jsfiddle.net/hbvjQ/62/

1
CoolEsh