Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.05.2014, 23:59
Аспирант
Отправить личное сообщение для kuchuluk Посмотреть профиль Найти все сообщения от kuchuluk
 
Регистрация: 04.04.2014
Сообщений: 31

новый элемент не добавляется в DOM
Делаю комментарии для сайта. И снизу делаю кнопку "показать еще 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 воздействовать по идее. В чем может быть проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2014, 07:13
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Проблема в то что все что отображено на странице - и есть dom. если вы вставили что то неважно с помощью js/jq/другого фреймворка, оно в дом.

Проблема в твоем коде. Открой консоль. Посмотри в каком порядке выводятся комментарии и убедись что они идут от меньшего к большему. Выведи в консоль, какой элемент у тебя получился "последним" и его Id и сверь во вкладке html
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2014, 22:48
Аспирант
Отправить личное сообщение для kuchuluk Посмотреть профиль Найти все сообщения от kuchuluk
 
Регистрация: 04.04.2014
Сообщений: 31

просмотрел код элемента и в нем id как раз того коммента, который и вывелся последним. А как в консоли посмотреть?
Ответить с цитированием
  #4 (permalink)  
Старый 30.05.2014, 07:39
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

f12 - откроется консоль.
var lastId = document.getElementsByName('com_id')[i].getAttribute('value');
// после этой строки
console.log(lastId )// вот и вывел в консоль
Ответить с цитированием
  #5 (permalink)  
Старый 30.05.2014, 21:00
Аспирант
Отправить личное сообщение для kuchuluk Посмотреть профиль Найти все сообщения от kuchuluk
 
Регистрация: 04.04.2014
Сообщений: 31

посмотрел через консоль. id только что добавленного комментария и попадает. Только почему то когда скрипт начинает работать, снова выборка идет с тех элементов, которые были при первой загрузке, а не из того, который только что добавился.
Ответить с цитированием
  #6 (permalink)  
Старый 30.05.2014, 21:11
Аспирант
Отправить личное сообщение для kuchuluk Посмотреть профиль Найти все сообщения от kuchuluk
 
Регистрация: 04.04.2014
Сообщений: 31

спасибо вам большое! нашел ошибку. ошибка дальше была в php коде.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите удалить новый DOM элемент allforweb jQuery 1 26.01.2012 00:32
Новый элемент отсутствует в DOM модели StrSprut jQuery 4 19.09.2011 11:50
Как узнать находится ли DOM элемент в области видимости? phgrey Общие вопросы Javascript 4 22.03.2011 18:05
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 12:33
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 21:02