Перейти к содержимому


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 105 0 тем, 10 сообщений, 7 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 90 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #5

    BLIK
    Очков активности: 45 Вне конкурса за определение пользователя месяца

  • Фотография TimurR
    #6

    TimurR
    Очков активности: 42 Вне конкурса за определение пользователя месяца

  • Фотография AnnaYa
    #7

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография Developer
    #8

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

  • Фотография Алексей111
    #9

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография Игорь Ку
    #10

    Игорь Ку (dudesday.ru)
    Очков активности: 24 1 тема, 5 сообщений, 2 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 26.09.2018
Топ 5 участников по репутации


Новый элемент не добавляется в DOM

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 333 сообщений
  • Репутация: 5
0

Отправлено 28 May 2014 - 23:43

Делаю комментарии для сайта. И снизу делаю кнопку "показать еще 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 воздействовать по идее. В чем может быть проблема?


 

 

Сообщение отредактировал Kuchuluk: 28 May 2014 - 23:44

  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru