这看起来可能很奇怪。我有一个与'引号'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