Javascript的字符串替换函数似乎是剥离HTML标记,有没有办法禁用它?
示例:
$('#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>
答案 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 ');
}