このサンプル コードを 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;
}
}
}
}