Удалить ' ' - все еще пытаюсь

Ищем способ удаления ' ' из моего html-кода, нашел несколько способов на stackoverlow.com, но ни один из этих швов работать!

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 - игровая площадка http://jsfiddle.net/MrTest/hbvjQ/85/

Любая помощь очень ценится.
Пит

Ответы

Ответ 1

У вас есть & nbsp в коде вместо &nbsp;

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

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

Ответ 2

Этот символ заменит каждый символ пробела:

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

Или, если вы хотите заменить неразрывные пробелы:

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

jsFiddle Demo

Я устанавливаю новое значение, используя закрытие в качестве параметра для .text().


Обратите внимание, что в конечном итоге HTML-объекты нуждаются в закрытии ;.

Ответ 3

попробуйте

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

или если вы хотите удалить & nbsp try

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

также обратите внимание, что пробел &nbsp;, а не &nbsp (вам не хватает;)

Ответ 4

На основе bažmegakapa 'answer, это можно использовать для элементов, содержащих другие элементы.

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

.text() избавляется от элементов html; .html() не

Ответ 5

Вы заменяете текст, но не применяете его обратно. Кроме того, используйте $.trim, чтобы избавиться от &nbsp;

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

Ответ 6

Вот код:

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

И вот jsfiddle: http://jsfiddle.net/hbvjQ/62/

Ответ 7

Здесь ответ не-jQuery, поскольку использование jQuery для такой задачи является излишним, если вы уже не используете его для чего-то еще на своем сайте:

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>