Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление элементов со страницы jquery (https://javascript.ru/forum/events/50585-udalenie-ehlementov-so-stranicy-jquery.html)

savvas 02.10.2014 22:10

Удаление элементов со страницы jquery
 
Господа, есть одна функция:
function generate () {
	for (var i=1; i<13; i++) {
		$(document.body).remove(".people"+ i);
	}
	var countPeopleEnd = getRandom(countPeople.min, countPeople.max)
	console.log(countPeopleEnd);
	for (var i=1; i<countPeopleEnd; i++){
		var coordPeopleHorizontal = getRandom(horizontal.minCoord, horizontal.maxCoord);
		var coordPeopleVertical = getRandom(vertical.minCoord, vertical.maxCoord);
		var people = "<div onclick='increment(" + i + ")' class=people";
		$(document.body).append(people + i + "></div>");
		console.log("sucsess")
		$(".people" + i).css({
			top: coordPeopleVertical + "px",
			left: coordPeopleHorizontal + "px"
		})
	}
	for (var i=1; i<countPeopleEnd+1; i++) {
		var skin = getRandom(1,6);
		$(".people" + i).css("background", "url(/images/people/"+ skin + ".png)")
}}

Эта функция генерирует людишек при каждом нажатии на кнопку. Вопрос: почему при нажатии на кнопку не удаляются старые человечки, если есть такое выражение:
for (var i=1; i<13; i++) {
		$(document.body).remove(".people"+ i);
	}

Отображается всё нормально, но в исходном коде образуется огромное количество элементов people.
Спасибо заранее

ksa 03.10.2014 08:08

Цитата:

Сообщение от savvas
в исходном коде образуется огромное количество элементов people

А удалять ты пытаешся элементы с классами peopleN, где N от 1 до 12...

krasovsky 03.10.2014 08:54

Если уж используешь jq То тогда не мешай все в кучу и установи своим человечкам общий класс, например peoples, и удаляй всех сразу - $('.peoples').remove(); Тем более что ты выводишь рандомное их количество а удаляешь с 1 по 13 зачем то.

savvas 03.10.2014 11:57

Цитата:

Сообщение от ksa (Сообщение 333203)
А удалять ты пытаешся элементы с классами peopleN, где N от 1 до 12...

Но там же стоит цикл, который перечисляет N от 1 до 12 (12- максимальное количество человечков) и удаляет их.

savvas 03.10.2014 12:20

Цитата:

Сообщение от krasovsky (Сообщение 333207)
Если уж используешь jq То тогда не мешай все в кучу и установи своим человечкам общий класс, например peoples, и удаляй всех сразу - $('.peoples').remove(); Тем более что ты выводишь рандомное их количество а удаляешь с 1 по 13 зачем то.

Спасибо огромное, оказалось, что правильно цикл должен выглядить
for (var i=1; i<13; i++) {
		$(".people"+ i).remove();
	}

ksa 03.10.2014 13:23

Цитата:

Сообщение от savvas
оказалось, что правильно цикл должен выглядить

Зачем вообще цикл? Зачем всем однородным элементам давать разные классы?
Этоведь не ИДшники... Суть класса в объединении однотипных элементов.


Часовой пояс GMT +3, время: 19:20.