javascript - 使用参数设置 tabla data <td> 中的点击功能

标签 javascript html function onclick html-table

我有这个代码:

for (var i = 0; i < ArregloNombres.length; i++) {
    var tr = document.createElement("tr");
    for (var j = 0; j < ArregloNombres[i].length; j++) {
        var td = document.createElement("td");
        var text = document.createTextNode(ArregloNombres[i][j]);
        td.appendChild(text);

        tr.appendChild(td);

    }
    var Link = document.createElement("a");


    var textLink = document.createTextNode("Eliminar");


    Link.appendChild(textLink);
    Link.onclick = function() {
        eliminarImpuesto(i)
    };


    var tdLink = document.createElement("td");

    tdLink.appendChild(Link);

    tr.appendChild(tdLink);

    tabla.appendChild(tr);

}

其中 eliminarImpuesto(i) 只是 alert(i)。问题是,对于我创建的每个链接,都会传递相同的参数,它是数组内的值的数量。例如,我的数组中有两个元素,然后表中的每个链接都调用函数eliminarImpuesto(2),而不是发送正确的值。请帮忙。

最佳答案

您的变量“i”似乎是全局的。检查下面的链接: http://www.w3schools.com/js/js_function_closures.asp

也许如果您为元素分配一个属性然后将其取回,您就可以解决这个问题。

for(var i = 0; i<ArregloNombres.length ; i++){
    var tr = document.createElement("tr");
         for(var j = 0; j<ArregloNombres[i].length; j++) {
                   var td = document.createElement("td");
                   var text = document.createTextNode(ArregloNombres[i][j]);
                   td.appendChild(text);

                   tr.appendChild(td);

                 }
                   var Link = document.createElement("a");


                   var textLink = document.createTextNode("Eliminar");
                        //HERE: passing the attribute to  your element...

                        textLink.setAttribute('data-i',i);

                   Link.appendChild(textLink);
                   Link.onclick =function(){eliminarImpuesto(textLink)};


                   var tdLink = document.createElement("td");

                   tdLink.appendChild(Link);

                   tr.appendChild(tdLink);

                 tabla.appendChild(tr);

               }


             }


 function eliminarImpuesto(element)
 {
    //getting it back...
    var i = element.getAttribute('data-i');
 }

关于javascript - 使用参数设置 tabla data <td> 中的点击功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39519441/

相关文章:

javascript - 带有 2 个计时器的 jquerymobile session 超时

javascript - JavaScript 中的 getUserMedia() 跨浏览器规范化。非法调用

javascript - jQuery 动态添加行数到表中?

javascript - 网站 Logo 下方的消息框

javascript - 如何使用 Ajax 添加更多过滤器和寻呼机

html - 如何检查元素是否具有悬停属性并对 css 中的另一个元素执行某些操作

javascript - 如何将表单中的数据正确插入到表中

html - 将按钮向右浮动,同时保持文本的高度和垂直中心

java - 从函数/方法返回 for 循环打印的网格

excel vba - 返回两个值,传递一个输入参数