Ajax调用后出现意外标识符错误

时间:2013-12-16 10:46:36

标签: javascript php html ajax

我有这个HTML代码:

 <div id="texttheory" class="centertext">'. $short .' </div>';
 <button id="thbutton" class="theory_button" onclick="javascript:changetheory('.$long.')">
     <img id="imagebutton" src="./images/arrows.png" width="15px" heigth="22px">
 </button>

我在由javascript函数调用的php脚本中生成:

function showTheory (kl) {
     var xmlhttp;
     if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
     }
     else {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
     xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                 document.getElementById("theory").innerHTML=xmlhttp.responseText;
            }
     }
     xmlhttp.open("GET","gettheory.php?kl="+kl,true);
     xmlhttp.send();
 }

函数changetheory位于html库中,正确包含在html head标签中,它的工作方式如下:

function changetheory (content, old) {
     document.getElementById("texttheory").innerHTML= content;
     document.getElementById("thbutton").setAttribute ('onclick', "javascript:changetheory("+old+", "+content+")");
}

当我点击按钮切换两个文本时我得到错误: Uncaught SyntaxError:意外的标识符 在html文件的第1行。 任何人都可以看到问题是什么?

1 个答案:

答案 0 :(得分:3)

您在onclick事件的内容字符串周围缺少引号。

<button id="thbutton" class="theory_button" onclick="javascript:changetheory('.$long.')">

应该是

<button id="thbutton" class="theory_button" onclick="javascript:changetheory(\''.$long.'\')">