jquery: SyntaxError: неопределенный строковый литерал

0

когда когда-либо я даю пробел между словами и я нажимаю, чтобы вызвать функцию, тогда я получаю следующую ошибку:

SyntaxError: unterminated string literal
[Break On This Error]   

$(this).SelectProjectBox(363,"ssss

mypage# (line 1, col 29)

Созданный браузером html:

<span ssasas")="" onclick="$(this).SelectProjectBox(363,"ssss" href="#">ssss ssasas</span>

Мой фактический код

  echo '<span href="#"  onClick=$(this).SelectProjectBox(' . $cat->project_id . ',"'.$cat->project_name.'")>' . $cat->project_name . '</span>';

в чем причина. Пожалуйста, подскажите, как я могу изменить свой PHP-код для этого?

  • 0
    Правильно заключите в кавычки значение HTML-атрибута
  • 0
    @Sundara Попробуйте echo '<span href="#" onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>';
Показать ещё 2 комментария
Теги:

4 ответа

0
Лучший ответ

Вместо

echo '<span href="#"  onClick=$(this).SelectProjectBox(' . $cat->project_id . ',"'.$cat->project_name.'")>' . $cat->project_name . '</span>';

попробуйте

echo '<span href="#"  onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>';

Здесь мы повторяем html-часть, и мы используем одинарные кавычки для включения всей строки html. Поэтому всякий раз, когда нам нужны одиночные кавычки в строке, здесь мы хотим использовать ее для функций, мы должны избегать ее, используя обратную косую черту как /' которая будет отображать одну цитату. В противном случае строка будет остановлена в этой точке.

  • 0
    SyntaxError: unterminated regular expression literal [Break On This Error] $(this).SelectProjectBox('359','ddddddddd')>ddddddddd</span><img alt= analytics.js (строка 16, столбец 54)
  • 0
    пропустил окончание цитаты .. попробуйте мой обновленный ответ
Показать ещё 2 комментария
3

вы пропустили кавычки в событии onclick try

echo '<span href="#"  onClick="$(this).SelectProjectBox(' . $cat->project_id . ','.$cat->project_name.')">' . $cat->project_name . '</span>';

или попробуйте

<span href="#"  onClick="$(this).SelectProjectBox(<?php echo $cat->project_id ;?>,<?php echo $cat->project_name;?>)"><?php echo $cat->project_name;?></span>
  • 1
    Кавычки в значении без кавычек не допускаются.
  • 0
    ошибка: Uncaught SyntaxError: Unexpected token ILLEGAL Html: <span href="#" onclick="$(this).SelectProjectBox(&quot;363&quot;,&quot;ssss" ssasas")="">ssss ssasas</span>
Показать ещё 2 комментария
1

Выйдите из одной кавычки ('), используя \.

\' будет эхо '

Чтобы указать буквенную одинарную цитату, сбегите ее с помощью обратного слэша (\). Чтобы указать буквальную обратную косую черту, удвойте ее (\\). Все остальные экземпляры обратной косой черты будут рассматриваться как буквальная обратная косая черта: это означает, что другие escape-последовательности, к которым вы могли бы привыкнуть, такие как \r или \n, будут выводиться буквально, как указано, а не иметь какое-либо особое значение.

Код

echo '<span href="#"  onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>';

Чтение строки

1

Если я могу дать вам несколько советов: немного разделите свой код. Люди легче понять:

$content  = "<span href='#' ";  
$content .= "onClick=\"$(this).SelectProjectBox($cat->project_id,'$cat->project_name')\"";
$content .= ">";
$content .= $cat->project_name . "</span>";

echo $content;
  • 0
    если я сделаю это, мой код будет длинным. у меня уже есть 832 строки в моем коде
  • 0
    Но это будет намного лучше для обслуживания. И если другие программисты должны работать с этим кодом, им понадобится много времени, чтобы понять. Если ваш файл действительно становится большим, вы можете разделить его на отдельные файлы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню