Javascript 使用JS选择元素 var displayedImage=document.querySelector('.displayedImage'); var thumbBar=document.querySelector('.thumbBar'); btn=document.querySelector('button'); var overlay=document.querySelector('.overlay'); /*循环浏览图像*/ 对于(var i=1;i

Javascript 使用JS选择元素 var displayedImage=document.querySelector('.displayedImage'); var thumbBar=document.querySelector('.thumbBar'); btn=document.querySelector('button'); var overlay=document.querySelector('.overlay'); /*循环浏览图像*/ 对于(var i=1;i,javascript,html,Javascript,Html,您必须在循环中为每个新元素设置事件侦听器。如下所示: var displayedImage = document.querySelector('.displayed-img'); var thumbBar = document.querySelector('.thumb-bar'); btn = document.querySelector('button'); var overlay = document.querySelector('.overlay'); /* Looping thro

您必须在循环中为每个新元素设置事件侦听器。如下所示:

var displayedImage = document.querySelector('.displayed-img');
var thumbBar = document.querySelector('.thumb-bar');

btn = document.querySelector('button');
var overlay = document.querySelector('.overlay');

/* Looping through images */
for(var i=1;i<=5;i++){
  var newImage = document.createElement('img');
  newImage.setAttribute('src', "images/pic"+i+".jpg");
  thumbBar.appendChild(newImage);
}

function getPath(){
    var path = this.document.getAttribute('src').value;
}
newImage.onclick=function(){

    var path = newImage.getAttribute('src');
    console.log(path);
    displayedImage.setAttribute('src', path);
}
var displayedImage=document.querySelector('.displayedImage');
var thumbBar=document.querySelector('.thumbBar');
btn=document.querySelector('button');
var overlay=document.querySelector('.overlay');
/*循环浏览图像*/

对于(var i=1;i您必须在循环中为每个新元素设置事件侦听器。如下所示:

var displayedImage = document.querySelector('.displayed-img');
var thumbBar = document.querySelector('.thumb-bar');

btn = document.querySelector('button');
var overlay = document.querySelector('.overlay');

/* Looping through images */
for(var i=1;i<=5;i++){
  var newImage = document.createElement('img');
  newImage.setAttribute('src', "images/pic"+i+".jpg");
  thumbBar.appendChild(newImage);
}

function getPath(){
    var path = this.document.getAttribute('src').value;
}
newImage.onclick=function(){

    var path = newImage.getAttribute('src');
    console.log(path);
    displayedImage.setAttribute('src', path);
}
var displayedImage=document.querySelector('.displayedImage');
var thumbBar=document.querySelector('.thumbBar');
btn=document.querySelector('button');
var overlay=document.querySelector('.overlay');
/*循环浏览图像*/

对于(var i=1;i为什么不在每个图像元素上附加一个CSS类,并使用类名作为CSS选择器呢

var displayedImage = document.querySelector('.displayed-img');
var thumbBar = document.querySelector('.thumb-bar');

btn = document.querySelector('button');
var overlay = document.querySelector('.overlay');

/* Looping through images */
for(var i=1;i<=5;i++){
    var newImage = document.createElement('img');
    newImage.setAttribute('src', "images/pic"+i+".jpg");
    thumbBar.appendChild(newImage);

    // **************************************************
    newImage.onclick=function(){
        var path = this.getAttribute('src'); // instead of newImage use this
        console.log(path);
        displayedImage.setAttribute('src', path);
    }
    // **************************************************
}

function getPath(){
    var path = this.document.getAttribute('src').value;
}

为什么不在每个图像元素上附加一个CSS类,并使用类名作为CSS选择器呢

var displayedImage = document.querySelector('.displayed-img');
var thumbBar = document.querySelector('.thumb-bar');

btn = document.querySelector('button');
var overlay = document.querySelector('.overlay');

/* Looping through images */
for(var i=1;i<=5;i++){
    var newImage = document.createElement('img');
    newImage.setAttribute('src', "images/pic"+i+".jpg");
    thumbBar.appendChild(newImage);

    // **************************************************
    newImage.onclick=function(){
        var path = this.getAttribute('src'); // instead of newImage use this
        console.log(path);
        displayedImage.setAttribute('src', path);
    }
    // **************************************************
}

function getPath(){
    var path = this.document.getAttribute('src').value;
}

@newB我仍然不明白你所说的检索最后一个值是什么意思!@newB如果你想了解它为什么不起作用,那么看看答案末尾的链接或google闭包内的循环,上面有很多关于它的解释。谢谢!但是如果要翻译成英语..this.getAttribute与newImage.getAt相同右..@newB
在事件侦听器中是触发事件的元素,在本例中是单击的图像。我们不能使用
newImage
,因为所有事件侦听器都将引用相同的
newImage
,这是最后一个(循环会弄乱闭包,因为它在整个迭代过程中都有相同的作用域=>检查链接或谷歌我告诉过你的原因)!@newB我仍然不明白你所说的检索最后一个值是什么意思!@newB如果你想了解它为什么不起作用,那么请查看答案末尾的链接或谷歌闭包内的循环,上面有很多关于它的解释。谢谢!但是如果要翻译成英语..this.getAttribute与newImage.getA相同ttribute right..@newB
事件侦听器中的此
是触发事件的元素,在本例中,是单击的图像。我们不能使用
新图像
,因为所有事件侦听器都将引用相同的
新图像
,这是最后一个(这个循环把闭包搞砸了,因为它在整个迭代过程中都有相同的作用域=>检查链接或谷歌我告诉过你的原因)!