我有一个带有文本字符串的元素,我需要在第二列中用“+”替换空格和换行符。我有以下代码: 标记:
<table id="tblData">
<tr>
<td>John Smith</td>
<td>114 text text text<br/>text, text,<br/>text text<br/>text
<td>N/A</td>
</tr>
</table>
脚本:
$('#tblData td:nth-child(2)').each( function( index, element ){
console.log($(this).text()
.replace(/ /g, '+')
.replace('<br/>', '+')
);
});
替换空格工作正常,但替换<br/>
则不行。
我错过了什么?
Fiddle此处。
答案 0 :(得分:2)
答案 1 :(得分:1)
如果您要替换<br/>
,则必须使用$(this).html()
代替$(this).text()
。 .text()
不会输出html标记。对于正则表达式,请查看其他答案。这样做的副作用是,替换后文本中的所有其他html标记仍然存在。
答案 2 :(得分:0)
试试这个,
$('#tblData td:nth-child(2)').each( function( index, element ){
console.log($(this).text()
.replace(/ |\n|\n\r|\r\n/g, '+')// use /\s|\n|\n\r|\r\n for all spaces
);
});