在onclick函数中分配javascript变量

时间:2014-07-16 14:56:27

标签: javascript

OK。在下面的代码中。我试图用单引号传递参数图像[i],以便onclick可以工作,但是我无法通过应用来执行此操作(使用单引号传递参数)以下逻辑。任何人都可以在这里找到遗漏的东西。

  for (i=0;i<images.length;i++) {
document.write("<img onclick='currentimage('+images[1]+')' class='photo'  src='" +  images[i] + "' width='160' height='120'/>");
}

1 个答案:

答案 0 :(得分:1)

在尝试连接其他内容之前,您必须结束一个字符串文字。

您也无法在不转义的情况下嵌套不同的报价类型。

document.write("<img onclick='currentimage(&quot;" + images[1] + "&quot;)' class='photo' src='" +  images[i] + "' width='160' height='120'/>");

...但请帮自己一个忙。不要尝试在JavaScript中嵌入JavaScript。这会让你头疼。

使用DOM代替。在你的时候使用语义标记。

var parent = document.getElementById('someContainer');
for (i=0;i<images.length;i++) {
    parent.appendChild(makeButton(images[i]);
}

function makeButton(image) {
    var button_element = document.createElement("button");
    var image_element = document.createElement("img");
    button_element.appendChild(image_element);
    image_element.src = image;
    image_element.className = "photo";
    image_element.width = 160;
    image_element.height = 120;
    button_element.addEventListener('click', function (event) {
        currentimage(image);
    });
    return button_element;
}

它更长,但更容易看到正在发生的事情并进行调试。