Javascript AJAX HTML响应InsertBefore函数

时间:2012-03-24 13:16:27

标签: javascript html ajax eval responsetext

JAVASCRIPT问题NoT JQUERY

with(req = new XMLHttpRequest())open("GET",url,true),onreadystatechange=function(){
    if (req.readyState==4 && req.status==200){
        proposalTable.insertBefore(req.responseText,proposalTable.lastChild.previousSibling);
    }
},send(null);

req.responseText是

<tr><td>Row1</td></tr>
<tr><td>Row2</td></tr>
<tr><td>Row3</td></tr>

我想在表的最后一行(#proposalTable)之前插入此responseText 我的代码无效,因为.insertBefore函数的第一个参数应该是我认为的元素

2 个答案:

答案 0 :(得分:0)

我将使用jquery插入行,如:

with(req = new XMLHttpRequest())open("GET","ajax.php? page=proposal&contractid="+x,true),onreadystatechange=function(){
  if (req.readyState==4 && req.status==200){
    var $my_table = $('#my_table_id > tbody'); // we actually insert into the tBody
    var $last_row = $my_table.find('> tr:last');
    var $new_rows = $(req.responseText);
    $new_rows.appendTo($my_table);
    $last_row.appendTo($my_table);
  }
},send(null);

这基本上可以完成工作,我没有测试过这段代码,但这是基本的想法

答案 1 :(得分:0)

可以使用insertRow()函数。 这是一个例子:

<table id="proposalTable">
<tr><td>Row1</td></tr>
<tr><td>Row2</td></tr>
<tr><td>Row3</td></tr>
</table>
<script>
var eltd = document.createElement('td');
eltd.innerHTML = 'New row';
var eltable = document.getElementById('proposalTable');
var elrows = eltable.getElementsByTagName('tr');
var nrrows = elrows.length - 1;
eltable.insertRow(nrrows);
eltable.rows[nrrows].appendChild(eltd); 
</script>