1

2列目のスペースと改行を「+」に置き換える必要があるテキスト文字列を含む要素があります。次のコードがあります: マークアップ:

<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/>はうまくいきません。私は何が欠けていますか?

ここでフィドル

4

3 に答える 3

2

これを試してください \n 同様に置き換える必要があります

console.log($(this).html()
              .replace(/(<br>| |\n|\r)/g, '+')
           );

デモ

于 2013-09-26T10:40:56.447 に答える
1

置き換えたい場合は、の代わり<br/>に使用する必要があります。html タグを出力しません。正規表現については、他の回答をご覧ください。これの副作用は、テキスト内の他のすべての html タグが置換後も残っていることです。$(this).html()$(this).text().text()

于 2013-09-26T10:51:22.303 に答える
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
  );
});

フィドル

于 2013-09-26T10:43:25.463 に答える