获取动态创建的行的索引

时间:2013-01-02 09:24:51

标签: javascript html5

我正在创建一个Web应用程序,我在其中动态创建行并向每个动态添加的行添加单击侦听器。但我无法弄清楚如何获取行索引并将一些变量传递给侦听器。

for(var i=0; i<len; i++)  {      
    var TABLE = document.getElementById('tableId');
    var BODY = TABLE.getElementsByTagName('tbody')[0];

    //making a row
    var TR = document.createElement('tr');
    TR.className = "section group";

    //creating first column
    var TD = document.createElement('td');
    TD.className = "col span_1_of_3";

    //adding click listener
    url_array[count] = result.details[count].video_url;
    TR.addEventListener('click', function(e) {
        console.log(count,e);  //     ---------> 1 
    });

    count++;
}

在指示---> 1的行中,我将全局变量计数初始化为零,其值为最后一行索引。

1 个答案:

答案 0 :(得分:0)

这是一个范围问题。当click处理程序触发时,count将设置为最后一个。尝试使用匿名函数包装.addEventListener方法:

(function(count){
    TR.addEventListener('click', function(e) {
        console.log(count,e);  //     ---------> 1 
    });
})(count);

这将起作用,因为函数创建了与for循环不同的单独范围。