0

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>
4

2 回答 2

4

实际上,归结为您正在通过 .text() 访问文本节点,这确实完全去除了标记。

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

这是你要找的吗?

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

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

于 2013-02-18T20:45:34.430 回答
0

需要抓取具体的文本节点,或者innerHTML直接处理。标签的剥离是由text().

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

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

演示

于 2013-02-18T20:45:53.273 回答