0

ネイティブの JavaScript を使用しstring.replace("<p> </p>", "<P>&nbsp;</p>");て動作させることができません。置き換えるものが見つからないようです。

のouterHTMLまたはinnerHTMLを取得したとき

標準のスペース文字 " " で返される要素で"&nbsp;"、スペースのバージョンを取得する必要があります。

どうすればこれを行うことができますか。私はそれを行うために正規表現を書き込もうとしましたが、正規表現も置き換えるものを見つけられないようで、ページに少なくとも3〜4個あることがわかっています。

4

1 に答える 1

0

それは機能しますが、最初の出現を置き換えるだけです。には、グローバルフラグ ( /<p> <\/p>/g) を指定した正規表現を使用する必要がありますが、html を正規表現と一致させるreplace()ことはお勧めできません (ただし、この特定の単純なケースでは機能する可能性があります)。

DOM の方法はよりクリーンになります。

var paragraphs = document.getElementsByTagName("p");
for (var i=0; i<paragraps.length; i++)
    if (paragraphs[i].innerHTML == " ") // does not contain other empty elements
        paragraphs[i].innerText = "\uA0";
于 2012-10-14T17:53:07.410 に答える