快速的javascript函数帮助

时间:2009-12-18 16:12:30

标签: 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' style='margin:7px;' onclick='imageShow(z);'>";
            }

img_src.lengt在这种情况下是4 ...所以无论我点击的三张图片中的哪一张,nr 4都会传递给...想法?

由于

4 个答案:

答案 0 :(得分:5)

不应该这样:

onclick='imageShow(z);'

是这样的:

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

答案 1 :(得分:3)

使用DOM,正确

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);

}

答案 2 :(得分:0)

尝试更改此行......

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 += "<img src='"+path_th_img+"' class='shadow2' style='margin:7px;' onclick='imageShow("+z+");'>";

答案 3 :(得分:0)

你必须在字符串中传递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+");'>";
}