当我在 Google Chrome 中运行此示例代码时,预期的行为——在当前页面的占位符图像标签内加载图像——不会发生。我在调用 showPic() 时检查了 currPic 的值,它是“未定义的”。我知道如果我将 showPic 的参数从“anchors[i]”更改为“this”,那么它会起作用,但我试图理解为什么会这样。
function showPic(currPic) {
var srcLoc = currPic.getAttribute("href");
var placeHolder = document.getElementById("placeholder");
placeHolder.setAttribute("src", srcLoc);
var imgLabel = document.getElementById("imglabel");
var currLinkTitle = currPic.getAttribute("title");
imgLabel.firstChild.nodeValue = currLinkTitle;
}
function prepareGallery() {
if(!(document.getElementsByTagName && document.getElementById)) return false;
var imgGallery = document.getElementById("imagegallery");
if(imgGallery) {
var anchors = imgGallery.getElementsByTagName("a");
var i;
for(i = 0; i < anchors.length; i++) {
anchors[i].onclick = function() {
showPic(anchors[i]);
return false;
}
}
}
}