Я пытаюсь создать галерею.innerHTML в массиве
Мне удалось выполнить все шаги, кроме последнего, при нажатии на миниатюру изменится текст в абзаце на другой текст, который я помещаю в массив.
Пока я внутри цикла for, я хочу, чтобы текст индекса 2 показывался, когда я нажимаю образ индекса 2. Я, кажется, следовал правильному синтаксису, но все же в параграфе отображается «undefined " в результате. Однако, когда я выбираю индекс, как и любое изображение, которое я нажимаю, я хочу показать текст индекса 3, он работает.
Вот мой упрощенный код, который должен позволять мне показывать текст при нажатии на абзац. Было бы здорово, если бы вы, ребята, не использовали jQuery. Спасибо вам всем!
<!DOCTYPE html>
<html>
<body>
<p class="demo">1</p>
<p class="demo">2</p>
<p class="demo">3</p>
<script>
var cars = ["Saab", "Volvo", "BMW"];
var para = document.getElementsByClassName("demo");
for (k=0;k<cars.length;k++){
para[k].onclick=function(){
this.innerHTML = cars[k];
}
}
</script>
</body>
</html>
Проблема, вероятно, в том, что индекс 'k' не сохраняется между циклами в вашем цикле' for'. Вам нужно использовать закрытие. – Matthew