Javascript非法令牌错误

时间:2011-01-08 18:37:23

标签: 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);
        }

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

  

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

以“var ul =”

开头的行

任何建议都会有所帮助!

2 个答案:

答案 0 :(得分:9)

您在ul字符串中,在结束</li>和开场<li>之间插入换行符。除非你

,否则JavaScript字符串文字本身不能跨越多行
  • 在每一行追踪\但最后一行(正如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>";
    
  • 打破它们并连接各个部分,如下所示:

    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中无关紧要。)

答案 1 :(得分:0)

我发现我需要在结束标签中转义正斜杠。即;

<\/script>

<\/form>

然后&#34; Uncaught SyntaxError:Unexpected token ILLEGAL&#34;错误消失了,我的代码处理得很好。