Javascript替换删除HTML

时间:2013-02-18 20:40:02

标签: javascript jquery html regex

Javascript的字符串替换函数似乎是剥离HTML标记,有没有办法禁用它?

示例:

http://jsfiddle.net/TDd7w/

$('#pageEnumeration').text(function(){
    return $(this).text().replace(/^Showing \d+-\d+ of/, 'Showing ');
});
<p id="pageEnumeration">
  Showing 1-25 of 45 records found:
  <br>
  containing the terms:
  <span class="italic">cat</span>
</p>

2 个答案:

答案 0 :(得分:4)

实际上,它归结为你通过.text()访问文本节点的事实,它完全剥离了标记。

http://jsfiddle.net/mori57/dkLLX/

这是你在找什么?

$('#pageEnumeration').html(function(i, htm){
    return htm.replace(/^Showing \d+-\d+ of/, 'Showing ');
});

如果要保留元素节点,则需要使用.html()方法访问,而不是.text()。

答案 1 :(得分:0)

您需要获取特定的文本节点,或直接处理innerHTML。标签的剥离是由text()引起的。

var $pageEnum = $('#pageEnumeration');

if ($pageEnum.length > 0) {
    $pageEnum[0].innerHTML = $pageEnum[0].innerHTML.replace(/^Showing \d+-\d+ of/, 'Showing ');
}

Demo