我让jQuery提取一些textarea内容并将其插入li中。我希望它在视觉上保留换行符。必须有一种非常简单的方法来执行此操作...
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
将其放在您的代码中(最好放在通用的js函数库中):
String.prototype.nl2br = function()
{
return this.replace(/\n/g, "<br />");
}
用法:
var myString = "test\ntest2";
myString.nl2br();
创建字符串原型函数使您可以在任何字符串上使用它。
千万里不及你
TA贡献1784条经验 获得超9个赞
本着更改呈现而不是更改内容的精神,以下CSS 使每个换行符的行为类似于<br>:
white-space: pre;
white-space: pre-line;
为什么有两个规则:pre-line仅影响换行符(感谢线索,@ KevinPauli)。IE6-7和其他旧的浏览器回落到更极端的状态pre,其中还包括nowrap并呈现多个空格。有关这些设置和其他设置(pre-wrap)的详细信息,请参见mozilla和css-tricks(感谢@Sablefoste)。
尽管我通常不赞成SO偏向于猜测问题而不是回答问题,但在这种情况下,用<br>标记替换换行符可能会增加用户未经洗刷的输入攻击的脆弱性。每当您发现自己要更改字面意义所暗示的.text()呼叫时,就会越过一条红线.html()。(感谢@AlexS强调了这一点。)即使您当时排除了安全风险,将来的更改也可能会无意间引入它。相反,此CSS允许您使用safer获得硬换行而无需标记.text()。
添加回答
举报
0/150
提交
取消