Javascript AJAX HTML Response InsertBefore Function - PullRequest
0 голосов
/ 24 марта 2012

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>

Я хочу вставить этот responseText до последней строки таблицы (#proposalTable)
Мой код не работает, потому что 1-й параметр функции .insertBefore должен быть элементом, который я считаю

Ответы [ 2 ]

0 голосов
/ 24 марта 2012

Может использоваться функция 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>
0 голосов
/ 24 марта 2012

Я буду использовать 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);

это в основном выполнит работу, я не тестировал этот код, но это основная идея

...