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.

    链接地址: http://www.djcxy.com/p/58076.html

    上一篇: 未捕获的SyntaxError:针对Chrome浏览器的意外令牌非法

    下一篇: Javascript非法令牌错误