开发者

Javascript Illegal Token Error

Forgive me if this is a simple problem but I can't seem to find why this code:

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);
        }

Is giving me this error in Chrome (win):

Uncaught SyntaxError: Unexpected token ILLEGAL

On the line that starts with "var ul = "

Any advice would help thanks!


You are inserting a line break in your ul string, between the closing </li> and the opening <li>. JavaScript string literals cannot span multiple lines like this by themselves, unless you

  • Trail a \ at each line but the last (as Ivo Wetzel says):

    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>";
    
  • Break them and concatenate the parts, like this:

    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>";
    

    (To keep the newline there you would place a \n somewhere, but in HTML it won't matter.)


I found I needed to escape the forward slashes in my closing tags. ie;

<\/script>

or

<\/form>

Then the "Uncaught SyntaxError: Unexpected token ILLEGAL" Error went away and my code processed fine.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜