JavaScript函数未定义 - 语法错误

问题描述:

复制函数执行以下操作:如果用户在文本区域输入@,则会使div可见并使用关键字数组中的建议填充div。任何数组条目匹配@后输入的内容,直到div中填充空格。复制功能附加到文本区域的onkeyup事件JavaScript函数未定义 - 语法错误

突然,浏览器报告函数Copy未定义。我相信这可能是我缺少的语法错误。我已经看过我的代码数十亿次了,我找不到一个错误。

function copy() 
{ 
    var ta = document.getElementById("ta") ; 
    var taarray = ta.value.split(" ") ; 
    var lastword = taarray[taarray.length - 1] ; 
    document.getElementById('selector').innerHTML = " " ; 
    if (lastword.indexOf("@") == 0) 
    {  
     selector1(); // Function that makes the div visible 
     if (lastword.substr(1).length > 0) 
     { 
      var f = 0 ; 
      while (f <= friends.length) 
      { 
       if (friends[f].toLowerCase().indexOf(lastword.substr(1).toLowerCase()) != -1) 
       {     
        var x ; 
        x = "<a onmouseover=projectImage('" + friends[f].split(|)[1] + "') onclick=tagfriend('" + friends[f].split("|")[1] + "') >" ; 
        x += friends[f].split("|")[0] ; 
        x += "</a>" ;          
        document.getElementById('selector').innerHTML = x + "<br />" ; 
       } 
       f++ ;   
      } 
     } 
    } 
    else 
    { 
    } 
} 
+2

你得到的具体错误是什么? – Shmiddty

+1

'朋友[f] .split(|)[1]'' - JSHint在下次第一次时会出现语法错误... – gengkev

+0

请确保您的函数是在'window.onload'事件中定义的,或者是在body在脚本标记中。 – 0x499602D2

您的错误说“复制”是未定义的,因为您将函数定义为“复制”(小写)。 JS中的变量和函数名称区分大小写。然而,这只是评论中提出的许多其他错误之一。你应该考虑使用像JSLint这样的调试工具来解决这些问题。