Javascript.RU

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

Перебор div'ов for i
Получаю список блоков, изначально им всем проставлен display:none. При загрузке страницы показываю 5, потом при клике на кнопку следующие 5. Проблема состоит в том, что каждый проход работает в шахматном порядке, первому диву ставит класс, второму display: block и т.п. В чём проблема?

function nextFiveShow() {
	var elems = document.getElementsByClassName('first');
	for ( var i = 0;  i < 5; i++ ) {    
	  elems[i].setAttribute("class", "boxComment show");
	  elems[i].style.display="block";
	}
}

window.onload = function() {	
	nextFiveShow();	
	var clkBtn = document.getElementById("clkButton");
	clkBtn.onclick = function() {
	  nextFiveShow();	  
	}
}


Заранее, спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2013, 18:14
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

<style>
.first {
	display: none;
}
</style>
<input type="button" id="clkButton" value="click me!">
<div class="first">один</div><div class="first">два</div><div class="first">три</div><div class="first">четыре</div><div class="first">пять</div>
<div class="first">двадцать один</div><div class="first">двадцать два</div><div class="first">двадцать три</div><div class="first">двадцать четыре</div><div class="first">двадцать пять</div>
<div class="first">тридцать один</div><div class="first">тридцать два</div><div class="first">тридцать три</div><div class="first">тридцать четыре</div><div class="first">тридцать пять</div>
<div class="first">сорок один</div><div class="first">сорок два</div><div class="first">сорок три</div><div class="first">сорок четыре</div><div class="first">сорок пять</div>
<div class="first">пятьдесят один</div><div class="first">пятьдесят два</div><div class="first">пятьдесят три</div><div class="first">пятьдесят четыре</div><div class="first">пятьдесят пять</div>
<script>
function nextFiveShow() {
	var elems = document.getElementsByClassName('first');
	for ( var i = 0;  i < 5; i++ ) {    
	  elems[i].setAttribute("class", "boxComment show");
	}
};
nextFiveShow()
document.getElementById("clkButton").onclick = nextFiveShow;
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2013, 18:22
Аспирант
Отправить личное сообщение для realstranger Посмотреть профиль Найти все сообщения от realstranger
 
Регистрация: 28.01.2011
Сообщений: 31

Ну и?

один
три
пять
двадцать два
двадцать четыре

При первом проходе.
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2013, 18:45
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

<style>
.first { display: none; }
</style>
<div class="first">1</div>
<div class="first">2</div>
<div class="first">3</div>
<div class="first">4</div>
<div class="first">5</div>
<div class="first">6</div>
<div class="first">7</div>
<div class="first">8</div>
<div class="first">9</div>
<div class="first">10</div>
<div class="first">11</div>
<div class="first">12</div>
<div class="first">13</div>
<div class="first">14</div>
<div class="first">15</div>
<button id="clkButton">Add</button>
<script>
function nextFiveShow() {
	var elems = document.getElementsByClassName("first");
	for ( var i = 0;  i < 5; i++ ) {    
		elems[0].style.display = "block";
		elems[0].setAttribute("class", "boxComment show");
	}
}
window.onload = function() {
	nextFiveShow();
	var clkBtn = document.getElementById("clkButton");
	clkBtn.onclick = function() {
		nextFiveShow();
	}
}
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2013, 18:51
Аспирант
Отправить личное сообщение для realstranger Посмотреть профиль Найти все сообщения от realstranger
 
Регистрация: 28.01.2011
Сообщений: 31

Сообщение от Rise Посмотреть сообщение
<style>
.first { display: none; }
</style>
<div class="first">1</div>
<div class="first">2</div>
<div class="first">3</div>
<div class="first">4</div>
<div class="first">5</div>
<div class="first">6</div>
<div class="first">7</div>
<div class="first">8</div>
<div class="first">9</div>
<div class="first">10</div>
<div class="first">11</div>
<div class="first">12</div>
<div class="first">13</div>
<div class="first">14</div>
<div class="first">15</div>
<button id="clkButton">Add</button>
<script>
function nextFiveShow() {
	var elems = document.getElementsByClassName("first");
	for ( var i = 0;  i < 5; i++ ) {    
		elems[0].style.display = "block";
		elems[0].setAttribute("class", "boxComment show");
	}
}
window.onload = function() {
	nextFiveShow();
	var clkBtn = document.getElementById("clkButton");
	clkBtn.onclick = function() {
		nextFiveShow();
	}
}
</script>
Вот оно, точно, массив же меняется! Благодарю!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перебор переменных ChikiSt Общие вопросы Javascript 8 16.02.2019 22:23
Обновление div'ов lor08 AJAX и COMET 4 25.06.2011 20:11
(jScrollPane) помогите правильно прописать css для div'ов _shpion_ jQuery 0 14.05.2011 17:16
Перебор DOM элементов DjDiablo jQuery 3 04.02.2011 16:26
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 22:46