Javascript非法令牌错误

Dou*_*eux 2 javascript syntax-error

原谅我,如果这是一个简单的问题,但我似乎无法找到为什么这个代码:

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);
        }
Run Code Online (Sandbox Code Playgroud)

在Chrome中给我这个错误(赢):

未捕获的SyntaxError:意外的标记ILLEGAL

在以"var ul ="开头的行上

任何建议都会有所帮助!

Bol*_*ock 9

您在ul字符串中,在结束</li>和开头之间插入换行符<li>.除非你这样,否则JavaScript字符串文字不能自己跨越多行

  • \在每条线上追踪a 但是最后一条(正如Ivo Wetzel所说):

    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>";
    
    Run Code Online (Sandbox Code Playgroud)
  • 打破它们并连接各个部分,如下所示:

    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>";
    
    Run Code Online (Sandbox Code Playgroud)

    (为了保留换行符,你可以放置一个\n地方,但在HTML中它并不重要.)

  • 错误.它们可以跨越多行,只需在字符串末尾添加一个尾随的`\\`. (2认同)