Javascript Недопустимая ошибка токена - PullRequest
2 голосов
/ 08 января 2011

Простите, если это простая проблема, но я не могу понять, почему этот код:

function create_content(c)
        {
            var html = "<div id='header'>"+c+"</div>";
            if(c == "links")
            {
                var ul = "<ul><li><a href='http://www.mylink.com'>My Link 1</a></li>
<li><a href='http://www.mylink2.co.uk'>My Link 2</a></li></ul>";
                html = html + ul;
            }
            return(html);
        }

выдаёт мне эту ошибку в Chrome (победа):

Uncaught SyntaxError: Неожиданный токен ILLEGAL

В строке, начинающейся с "var ul ="

Любой совет поможет, спасибо!

Ответы [ 2 ]

9 голосов
/ 08 января 2011

Вы вставляете разрыв строки в строку ul между закрывающим </li> и открывающим <li>. Строковые литералы JavaScript не могут занимать несколько строк, подобных этой, если только вы

  • Трейл \ на каждой строке, кроме последней (как говорит Иво Ветцель):

    var ul = "<ul><li><a href='http://www.mylink.com'>My Link 1</a></li>\
    <li><a href='http://www.mylink2.co.uk'>My Link 2</a></li></ul>";
    
  • Разбейте их и соедините части, как это:

    var ul = "<ul><li><a href='http://www.mylink.com'>My Link 1</a></li>";
    ul += "<li><a href='http://www.mylink2.co.uk'>My Link 2</a></li></ul>";
    

    (Чтобы сохранить там новую строку, вы должны поместить куда-нибудь \n, но в HTML это не имеет значения.)

0 голосов
/ 19 февраля 2015

Я обнаружил, что мне нужно избежать косой черты в моих закрывающих тегах.т.е.;

<\/script>

или

<\/form>

Затем ошибка "Uncaught SyntaxError: Unexpected token ILLEGAL" исчезла, и мой код обработан нормально.

...