Javascript使用html中的参数动态分配onclick事件

时间:2017-04-03 17:50:10

标签: javascript html

我尝试使用html onclick发送onclick参数

for (var i = 0; i < 2; i++) {
    if (i == 1) {
        document.write(" <tr class='noBorder' onclick='foo(i)' >");
    }
    if (i == 0) {
        document.write(" <tr class='noBorder' onclick='foo(i)' >");
    }
}

然而,每当我点击一行时,我都会回到onclick = foo(2)

我一直在四处寻找并发现同样的问题

Javascript - Dynamically assign onclick event in the loop

我想知道是否可以使用document.write执行此操作?

2 个答案:

答案 0 :(得分:0)

您只需要从Javascript字符串中删除i

for (var i = 0; i < 2; i++) {
    if (i == 1) {
        document.write(" <tr class='noBorder' onclick='foo(" + i + ")' >");
    }
    if (i == 0) {
        document.write(" <tr class='noBorder' onclick='foo(" + i + ")' >");
    }
}

2注释

  1. 你应该反过来使用'和'...使用'...'来界定属性是无效的HTML5(你需要<div style="..."></div>,而不是<div style='...'></div>
  2. 您到处都看到foo(2),因为这是i的最后一个值。您的onclick可以使用,但是会获取i的最后一个值,而不是在呈现HTML时对i的值进行硬编码。

答案 1 :(得分:0)

必须在页面加载

之前运行

document.write语句

因此,您不希望将document.write放入onclick

如果您正在尝试修改已加载的网页,则必须使用div标记并使用以下内容:

document.getElementById("name").innerHTML = "bob";