删除'' - 仍在尝试

时间:2011-06-23 10:41:26

标签: javascript jquery string whitespace html-entities

还在寻找一种从我的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 - playground http://jsfiddle.net/MrTest/hbvjQ/85/

任何帮助都非常感谢。
皮特

6 个答案:

答案 0 :(得分:43)

您的代码中有&而不是&nbsp;

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

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

答案 1 :(得分:27)

这个将替换每个空格字符:

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

或者,如果您只想替换不间断的空格:

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

jsFiddle Demo

我使用closure as a parameter for .text()设置新值。


请注意,HTML实体最终需要关闭;

答案 2 :(得分:6)

这是一个非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>

答案 3 :(得分:5)

尝试

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

或者如果您想删除&amp; nbsp try

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

另请注意,空格为&nbsp;,而不是(您丢失;)

答案 4 :(得分:5)

基于bažmegakapa' answer,这可用于包含其他元素的元素。

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

.text()摆脱了html元素; .html()没有

答案 5 :(得分:1)

以下是代码:

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

这是jsfiddle:http://jsfiddle.net/hbvjQ/62/