0

Javascript の文字列置換機能が HTML タグを削除しているようですが、これを無効にする方法はありますか?

例:

http://jsfiddle.net/TDd7w/

$('#pageEnumeration').text(関数(){
    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 ');
});

要素ノードを保持する場合は、.text() ではなく、.html() メソッドを使用してアクセスする必要があります。

于 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 に答える