快速javascript函数帮助
我有这个函数,我想把一个变量(z)传递给图像的OnClick事件 我有这个:快速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
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);
}