Использование функции замены в строке php - PullRequest
0 голосов
/ 16 января 2020

У меня есть PHP код:

 $onclick = "submitAndReloadArea($('order_history_block').parentNode, '" . $this->getSubmitUrl() . "');$('.note-list-comment').each(function(E){E.html(E.html().replace(/\n/g,'<br />'));});";

Я получаю эту ошибку

Недопустимое регулярное выражение: отсутствует /

Я думаю речь идет об этой строке:

E.html().replace(/\n/g,'<br />')

Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 16 января 2020

tl; др

Используйте $(this).html() вместо E.html().


Вы используете .each() неправильно.

E не является jQuery объектом, поэтому E.html() фактически не работает. Вы видите неправильную ошибку.

За https://api.jquery.com/jquery.each/, анонимная функция получает ключ и значение. Если вы console.log(E);, то вы должны увидеть нумерованный список, изменяющийся от 0 до скольких элементов .note-list-comment совпадают.

$('.note-list-comment').each(function(E){
    console.log(E);
    console.log(E.html());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="note-list-comment">
</div>
<div class="note-list-comment">
</div>
0 голосов
/ 16 января 2020

\n интерпретируется как разрыв строки, потому что ваша строка PHP использует двойные кавычки в качестве разделителей - поэтому полученный код HTML будет

[…].replace(/
/g,'<br />'));});

Итак, сделайте это \\n в вашей PHP строке, и вы должны получить правильный результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...