這看起來可能很奇怪。我有一個與'引號'ID的div,裏面有一個blockquote。如果引用的文字是詩歌,我認爲可以使用'@'作爲有條件的換行符,然後用br元素替換它如下:將br插入到textnode中
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 id = 'quotes'>
<blockquote> Some line, @ Some line, @ Some [email protected] </blockquote>
</div>
任何提示將深表感激。
爲什麼要使用'\ n'(換行符)?它適用於格式化字符串(反正文本節點)。 – 2011-04-17 21:38:02
@Matt:因爲文本節點中的新行不會被瀏覽器渲染爲換行符。 – 2011-04-17 22:56:43