2017-04-03 65 views
0

我试图用HTML发送的onclick参数的onclick的Javascript动态HTML中使用参数分配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.wri做到这一点TE?

+0

的onclick =“富(我)”在相应的条件下改变我值1和0 – Sankara

+0

这种情况也是没有用处的。 – Ibu

+0

这些只是测试用例。最后,我只会有文件撰写(.. FOO(I) – HelpinCodingpls

回答

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的值进行硬编码。
+0

的一条线,如果我== 1,那么你也可以说的onclick =“富(1)” – Sankara

+0

这是正确的做法,但后来是什么原因对于这种状况呢? – Ibu

+0

或者,如果条件应该被删除 – Sankara

0

文件撰写报表必须在页面加载完毕

因此运行之前,你不会想要把文件撰写成一个onclick

如果你想修改页面已经加载,你将不得不使用div标签和使用这样的:

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

但它适用于上述答案 – HelpinCodingpls