从html中删除

时间:2013-03-11 18:14:30

标签: jquery html css

我想从以下代码中删除 

<div class="country-IN">
   <span class="locality">Barnala</span>
   &nbsp;&nbsp;
   <span class="state">Punjab</span>
   &nbsp;&nbsp;
   <span class="country">India</span>
</div>

请帮我摆脱它。

6 个答案:

答案 0 :(得分:13)

我建议:

var el = document.querySelector('.country-IN');
el.innerHTML = el.innerHTML.replace(/&nbsp;/g,'');

JS Fiddle demo

或者,使用jQuery:

$('.country-IN').html(function(i,h){
    return h.replace(/&nbsp;/g,'');
});

JS Fiddle demo

甚至:

$('.country-IN').children().each(function(i,e){
    this.parentNode.removeChild(this.nextSibling);
});

JS Fiddle demo

虽然简单地编辑HTML文件本身更简单,只需删除这些字符串。

答案 1 :(得分:1)

您可以获取所需的元素并将其添加回元素的html

$('.country-IN').html(function(i,v){
   return $('<div>').append($(this).children('*')).html(); 
});

FIDDLE

答案 2 :(得分:0)

图书馆不可知:

(function() {
var country_els = document.querySelectorAll('.country-IN');

for (var i = 0; i < country_els.length; i++) {
    for (var j = 0; j < country_els[i].childNodes.length; j++) {
        var node = country_els[i].childNodes[j];
        if (typeof node.tagName === 'undefined') {
            node.parentNode.removeChild(node);
        }
    }  
}
})();

Fiddle

答案 3 :(得分:0)

首先,获取整个HTML div并将其转换为字符串

weak var delegate: SharedFunctions?

您将获得不带HTML标签和&nbsp等的文本

您可以在上述解决方案中添加多个条件

答案 4 :(得分:0)

我们不需要使用javascript。我们只能使用CSS隐藏&nbsp;。将font-size: 0添加到容器中,并将font-size: 1rem添加到子级中。

.second {
  font-size: 0;
}

.second > span {
  font-size: 1rem;
}
<div class="country-IN">
  <span class="locality">Barnala</span>
  &nbsp;&nbsp;
  <span class="state">Punjab</span>
  &nbsp;&nbsp;
  <span class="country">India</span>
</div>

<div class="country-IN second">
  <span class="locality">Barnala</span>
  &nbsp;&nbsp;
  <span class="state">Punjab</span>
  &nbsp;&nbsp;
  <span class="country">India</span>
</div>

答案 5 :(得分:-1)

您可以使用PHP中的preg_replace执行此操作。

<?php
$html = "YOUR HTML"
$new = preg_replace("!&nbsp;!", "", $html);
print($new);
?>

之前我使用过这个脚本,应该可以正常工作。