在xmlhttp.onreadystatechange函数中,如何传递我要编辑的ID的名称?

Jen*_*Jen 3 xmlhttprequest

这是我的代码.查看已注释掉的行.当元素id(这是一个跨度)是硬编码时,它可以工作.当通过连接传递给stateChanged的变量创建id时,它不起作用.我不允许将变量传递给stateChanged吗?怎么了?

function multiplePassportPoints(id, counter)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="addmorepoints.php"; 
url=url+"?id="+id+"&c="+counter;
url=url+"&sid="+Math.random();

xmlhttp.onreadystatechange=stateChanged(id,counter);
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged(id, counter) 
{
  if (xmlhttp.readyState==4)
  {
    //THIS WORKS (assuming id is 99 and counter is 5:
    //document.getElementById("99_5").innerHTML += xmlhttp.responseText; 

    //BUT I NEED IT TO WORK LIKE THIS:
    document.getElementById(studentID+"_"+counter).innerHTML += xmlhttp.responseText; 
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

rah*_*hul 8

您可以将代码更改为此

xmlhttp.onreadystatechange = function () {
        stateChanged(id,counter);
    };    
Run Code Online (Sandbox Code Playgroud)

  • +1.但我希望你能解释一下`xmlhttp.onreadystatechange = stateChanged(id,counter);`实际上是在调用`stateChanged(id,counter)`并将返回值赋给`onreadystatechange`而不是分配函数本身. (6认同)