无法在Javascript / AJAX中使用GetElementById获取表数据

时间:2017-05-06 06:29:42

标签: javascript html ajax

这是我的JavaScript函数。

var ajaxRequest = new XMLHttpRequest;
ajaxRequest.open("GET", "crudops.aspx?StudentId="+id+"&StudentName="+name+"&operation=insert", false);
ajaxRequest.send(null);
document.getElementById("TableDiv").innerHTML = ajaxRequest.responseText;
var t = document.getElementById("TableDiv").innerHTML;
alert(t);
var row = table.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = id;
cell2.innerHTML = name;

这里面有什么内容。

<table id="studenttable" cellpadding="5"><tbody><tr><th>Student Id</th><th>Student Name</th> ... </table>

但是我无法使用类似

之类的内容将表读入变量
var table = t.getElementbyId("studenttable");

如何读取该表并附加行? 帮助我提出建议。

4 个答案:

答案 0 :(得分:0)

var t = document.getElementById("TableDiv").innerHTML;
var table = t.getElementById("studenttable");

变量应该是一个元素,而不是一个字符串。尝试删除.innerHTML;

答案 1 :(得分:0)

这封信&#34; d&#34;需要大写。

var table = t.getElement B yId(&#34; studenttable&#34;);

答案 2 :(得分:0)

由于异步请求的性质,您需要分配一个回调函数来处理响应数据,而不是立即期待响应

var xhr = new XMLHttpRequest;
xhr.onreadystatechane=function(){
    if( xhr.readyState==4 && xhr.status==200 ){

        document.getElementById("TableDiv").innerHTML = xhr.response;
        var t = document.getElementById("TableDiv").innerHTML;
        alert(t);

        var row = table.insertRow(0);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);

        cell1.innerHTML = id;
        cell2.innerHTML = name;     

    }
};
xhr.open( "GET", "crudops.aspx?StudentId="+id+"&StudentName="+name+"&operation=insert", true );
xhr.send(null);

答案 3 :(得分:0)

  • 将XHR <div class="a">a</div> <div class="b">b</div> <div class="c">c</div>设置为async(或者您可以省略它)
  • 使用true回拨
  • 不要onreadystatechange使用DOM节点元素对象来引用DOM元素

jsBin live demo

innerHTML

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open