Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как узнать индекс елемента в массиве на которий нажали? (https://javascript.ru/forum/events/62002-kak-uznat-indeks-elementa-v-massive-na-kotorijj-nazhali.html)

Stepantshik 20.03.2016 12:40

Как узнать индекс елемента в массиве на которий нажали?
 
Есть вот такой код
<div id="bigDiv"></div>
<div class="smallDiv">Text1</div>
<div class="smallDiv">Text2</div>
<div class="smallDiv">Text3</div>
<div class="smallDiv">Text4</div>

var bigDiv = document.getElementById("bigDiv"),
     smallDivs = document.getElementsByClassName("smallDiv");
     //в цыкле присваиваем оnclick маленьким дивам 
     for(var i=0; i>smallDivs.length; i++){
             smallDivs[i].onclick = function(){
			for(var j=0; j < smallDivs.length; j++){
				smallDivs[j].style.display = "none";//убираем smallDiv	
			}
			
			bigDiv.style.display = "block";//показиваем bigDiv
			bigDiv.innerHTML = smallDivs["и вот тут  если поставить i, то будет ошибка"].innerHTML;//присваиваем bigDiv текс smallDiv, на которий кликнули, но тут проблема
    }

Тоесть при нажатии на один из маленьких дивов с текстом все они пропадають и появляеться один большой з текстом маленького, но я не знаю как узнать индекс этого маленького дива в массиве. Подскажите пожалуйста)

рони 20.03.2016 12:52

Stepantshik,
цикл прошёл с i сейчас i равно smallDivs.length а элемента с таким индексом у вас нет.
использовать [].forEach.call вместо for или способ тут
Пример ошибочного использования и ещё куча способов например this

Stepantshik 20.03.2016 12:58

Большое спасибо)


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