これは奇妙に思えるかもしれません。IDが「quotes」のdivがあり、その中にblockquoteがあります。引用されたテキストが詩である場合、改行を追加するのは興味深いと思いました。条件付きの改行として「@」を使用し、次のようにこれをbr要素に置き換えることができると思いました。
function addBr() {
var c = document.getElementById("quotes");
var t = c.getElementsByTagName("blockquote");
var reg = new RegExp("@", "g");
for (var i = 0; i < t.length; i++) {
var r = t[i].lastChild.nodeValue.match(reg);
if (r !== null) {
var text = t[i].childNodes[0];
var q = t[i].lastChild.nodeValue.indexOf("@");
var x = document.createElement("br");
t[i].insertBefore(x, text.splitText(q));
t[i].lastChild.nodeValue = t[i].lastChild.nodeValue.replace(/\@/g, "");
}
}
}
これは機能しますが、最初のインスタンスに対してのみなので、ループが必要ですが、それを理解することはできません。divは次のようになります。
<div id = 'quotes'>
<blockquote> Some line, @ Some line, @ Some line@ </blockquote>
</div>
ヒントをいただければ幸いです。