0

私はブログのプラットフォームとして Blogger を使用しています。厄介なことに、Rich Text Editor で Enter キーを押すと、<p></p> (段落タグ) の代わりに <br /> (改行) タグが作成されます。残念ながら、Blogger プラットフォーム内でこれを切り替える方法は見つかりませんでした。

したがって、私の解決策は、jQuery を使用して、すべての偶数 <br /> タグを開始 <p> タグに置き換え、すべての奇数 <br /> 以下のように終了 </p> タグに置き換えることです。

<br /> (replace with <p>)
Some initial paragraph
<br /> (replace with </p>)
<br /> (replace with <p>)
Some second paragraph
<br /> (replace with </p>)
<br /> (replace with <p>)
Some third paragraph
<br /> (replace with </p>)

これを行うために、以下の jQuery を作成しました。

$("br").each(function(i){
    if (i % 2 === 0){
        $(this).replaceWith("<p>");
    } else {
        console.log("odd break");
        $(this).replaceWith("</p>");
    }
})

ただし、上記の結果が得られる代わりに、各 <br /> タグが開始タグと終了タグ <p></p> の両方に置き換えられていることがわかりました。

どうすればこれを行うことができるかについての提案はありますか?

ありがとう!

(そして、私が意図したことを実際に実行する別のブログプラットフォームに切り替えることを提案しないでください。私はそれをしたくありませんし、実際に私の質問に答えません。)

4

3 に答える 3

3
var s = $('#content').html();
var i = -1;
s = s.replace(/<br \/>/gi, function() {
    i++;
    return i % 2 == 0 ? '</p>' : '<p>';
}, 'gi');
$('#content').html(s);

これにより、HTML がテキストとして読み取られ、正規表現を使用して の各インスタンスが<br />正しい開始タグまたは終了タグに置き換えられ、HTML 文字列がページに書き戻されます。

于 2013-10-31T00:37:52.027 に答える