return str.replace (/ \ n \ r? / g, "<br />") не работает, когда я отображаю данные JSON в элемент html - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть JSON-файл, как показано ниже, внутри data.json.

{
   "usfood":[
      {
         "fruits":"This is apple.\\nWe harvest every Spring."
      }
   ],
   "ukfood":[
      {
         "fruits":"This is melon.\\nWe harvest every Winter."
      }
   ]
}

У меня есть HTML-код ниже, внутри index.php.

<p id="food_description"></p>

У меня есть код jQuery, как показано ниже, внутри тега <script> из index.php.

$(document).on('ready',function(){
 $.getJSON("data.json",function(data) {
   $('#food_description').html(replaceBreak(data['usfood'][0].usfood));
 })
});

function replaceBreak(str){
return str.replace(/\n\r?/g, "<br />");
}

Результат: Элемент html в браузере показывает исходную строку

This is apple.\\nWe harvest every Spring.

Полагаю, проблема в функции replaceBreak. Как я могу улучшить свой код, чтобы успешно заменить \\n на <br />? В то же время это может быть порядок кодов.

Я тоже пробовал return str.replace("\n", "<br />"); return str.replace(/\n/g, "<br />");

1 Ответ

0 голосов
/ 15 ноября 2018

Вам необходимо использовать строку кабины

return str.replace("\\n", "<br />");
...