开发者问题收集

如何将变量传递给使用 JS 创建的表中的函数?

2018-03-03
35

我用 JS 创建了一个表,我想将行的 ID 传递给外部函数“COPY”。我做这件事遇到了困难。

for (var i =1; i <= (strln/2); i++) {
// creates a table row
var row = document.createElement("tr");
row.setAttribute("id",""+i+"");
row.setAttribute("onclick",""+'COPY(i)'+"");
}
3个回答

除非您需要使用字符串连接和 setAttribute 来执行此操作,否则您可以尝试这样做

for( var i=1; i <= ( strln / 2 ); i++ ) {

    var row = document.createElement('tr');
        row.id=i;
        row.onclick=function(e){
            COPY( this.id )
        }.bind( row )
}
Professor Abronsius
2018-03-03

您当前正在直接传递标识符 i ,但这指的是最后一次迭代后的值。可能只是直接传递该值:

 'COPY(' + i + ')'

请注意,您实际上应该使用 .addEventListener ...

Jonas Wilms
2018-03-03

连接字符串使得变量获取实际值而不是成为字符串。

for (var i = 1; i <= (strln / 2); i++) {
  var row = document.createElement("tr");
  row.setAttribute("id", i);
  row.setAttribute("onclick", 'COPY("'+i+'")');
}
void
2018-03-03