我使用此代码段将<br/>
标记替换为jquery中的“\ n”(新行)。但它不起作用
$("#UserTextArea").html(data.projectDescription).replace(/\<br\>/g, "\n");
但是为什么不起作用?
答案 0 :(得分:2)
.replace()
不会更改内容本身。它返回一个新字符串,因此如果要使用该新字符串,则必须将返回值从.replace()
放到某处。
如果您通过转义\并使其成为可选项来定位<br\>
,则可能还需要修复正则表达式。
仅供参考,在HTML中,\n
无法执行任何操作,因此,如果您只是尝试删除<br>
中的所有#UserTextArea
标记,则只需使用DOM解析器即可这样:
$("#UserTextArea br").remove();
或者,如果您只想将带有<br>
标记的字符串替换为可用于其他内容的变量,则可以执行以下操作:
var str = $("#UserTextArea").html().replace(/\<br\\?>/g, "\n");
或者,您要删除<br>
表单data.projectDescription
并将其作为HTML分配给#UserTextArea
,您可以这样做:
$("#UserTextArea").html(data.projectDescription..replace(/\<br\\?>/g, "\n"));
答案 1 :(得分:1)
$("#UserTextArea").html(data.projectDescription.replace(/\<br[\/]*\>/g, "\n"));
答案 2 :(得分:0)
$('#UserTextArea').html(data.projectDescription.replace(/\<br\s*\>/g, '\n'));
或者,搜索并替换元素的内部HTML:
var $element = $('#UserTextArea');
var html = $element.html();
$element.html(html.replace(/\<br\s*\>/g, '\n'));