Делаю комментарии для сайта. И снизу делаю кнопку "показать еще 10 комментариев", чтобы аяксом подгружать новые комментарии из БД и выводить их.
function funcB (data, d)
{
//alert(data);
var list = document.getElementById('comments');
var firstDiv = document.getElementById('show-comments');
var newDiv = document.createElement('div');
newDiv.className = 'onecom';
newDiv.innerHTML = data;
//alert(firstDiv);
list.insertBefore(newDiv, firstDiv);
//$(data).insertBefore("#show-comments");
}
//функция срабатывающая при нажатии кнопки показать еще 10
function showMoreComments ()
{
//var elements = $("input.com_id");
var big = document.getElementById('comments');
var elems = big.getElementsByTagName('div')
var length = elems.length;
var i = Number(length) - 1; // отнимаем 1 от количества полученныз записей для последующего получения id последнего элемента
var lastId = document.getElementsByName('com_id')[i].getAttribute('value'); // получаем id последнего элемента
var articleId = document.getElementsByName('article_id')[0].getAttribute('value'); // получаем id статьи
$.ajax ({
url: "/article/showmorecomments/",
type: "POST",
data: ({id: lastId, articleId: articleId}),
dataType: "json",
success: funcB
});
}
кнопка работает и комменты выводятся. Но когда я еще раз нажимаю по этой кнопке, то выводятся не следующие 10 комментариев, а те же, которые вывелись только что. Получается что строчка var lastId = document.getElementsByName('com_id')[i].getAttribute('value'); не получает id последнего комментария из только что подгруженных, а получает id последнего комментария из тех, которые были уже при загрузке всей страницы. Я так понимаю это происходит потому, что подгружаемые 10 комментариев не попадают в DOM страницы. Как правильно воздействовать на DOM? jqery уже полностью убрал из кода, все на чистом javascripte сделал. javascript же должен на DOM воздействовать по идее. В чем может быть проблема?