快速javascript函数帮助

快速javascript函数帮助,javascript,Javascript,我有这个函数,我想把一个变量(z)传递给图像的OnClick事件 我有这个: for (z=1; z<img_src.length; z++){ path_th_img= 'ad_images/'+category+'/'+'thumbs/'+img_src[z]; document.getElementById("thumb_pic_div").innerHTML += "<img src='"+path_th_img+"' class='shadow2' styl

我有这个函数,我想把一个变量(z)传递给图像的OnClick事件

我有这个:

for (z=1; z<img_src.length; z++){
    path_th_img= 'ad_images/'+category+'/'+'thumbs/'+img_src[z];
    document.getElementById("thumb_pic_div").innerHTML += "<img src='"+path_th_img+"' class='shadow2' style='margin:7px;' onclick='imageShow(z);'>";
            }
(z=1;z)的
;
}
在这个例子中,img_src.lengt是4…所以无论我点击三张图片中的哪一张,nr 4都会被传递…想法

谢谢

这不应该:

onclick='imageShow(z);'
是这样的:

onclick='imageShow(' + z + ');'

尝试更改此行

document.getElementById("thumb_pic_div").innerHTML += "<img src='"+path_th_img+"' class='shadow2' style='margin:7px;' onclick='imageShow(z);'>";
document.getElementById(“thumb_pic_div”).innerHTML+=“”;
对此

document.getElementById("thumb_pic_div").innerHTML += "<img src='"+path_th_img+"' class='shadow2' style='margin:7px;' onclick='imageShow("+z+");'>";
document.getElementById(“thumb_pic_div”).innerHTML+=“”;

您必须在字符串中传递z的值

for (z=1; z<img_src.length; z++) {
    path_th_img= 'ad_images/'+category+'/'+'thumbs/'+img_src[z];
    document.getElementById("thumb_pic_div").innerHTML += 
    "<img src='"+path_th_img+"' class='shadow2' style='margin:7px;' onclick='imageShow("+z+");'>";
}
(z=1;z)的
;
}
正确使用DOM

for(变量z=1,l=img_src.length;z
使用
document.getElementById(el.innerHTML+=”…“
for循环中的效率非常低,因为您要多次调用HTML解析器。最好将HTML分配给一个变量,然后在循环完成后将该变量应用于innerHTML属性,从而只调用解析器一次。建议:)不确定,但是我建议使用DOM,因为它比调用HTML解析器更有效。
for (var z = 1, l = img_src.length; z < l; ++z) {

    var new_img = document.createElement('img');

    new_img.src = 'ad_images/' + category+'/' + 'thumbs/' + img_src[z];
    new_img.onclick = (function(z){
        return function() {
            imageShow(z);
        };
    })(z);
    new_img.style.margin = '7px';

    document.getElementById("thumb_pic_div").appendChild(new_img);

}