在 JavaScript 中,如何在不使用 JQuery 的情况下使动态创建的表格行可点击?

In JavaScript how do I make a dynamically created tablerow clickable without using JQuery?

我目前正在学校学习 JavaScript,我们还没有使用 JQuery,所以我不能将其用于此作业。我正在根据 JSON 数据向 JavaScript 中的 table 动态添加行。但是,我需要使这些行可点击,然后调用一个函数。

这是我目前拥有的:

var table = document.getElementById("destinations");

for(var i=0; i < myJson.length; i++){
    var row = table.insertRow(i+1);

    row.insertCell(0).innerHTML = myJson[i]["name"];
    row.insertCell(1).innerHTML = myJson[i]["capital"];
    row.insertCell(2).innerHTML = myJson[i]["region"];
    row.insertCell(3).innerHTML = myJson[i]["surface"];
    row.insertCell(4).innerHTML = myJson[i]["population"];
}

我该怎么做?

我通过添加事件侦听器设法使行可点击:

row.addEventListener('click', function(){});

这样做时出现的一个问题是每个表行都会调用相同的函数。只有最后一个表行应该调用此函数。我通过在匿名函数中添加事件侦听器来修复此问题,所以现在我的代码如下所示:

var table = document.getElementById("destinations");

for(var i=0; i < myJson.length; i++){
    var row = table.insertRow(i+1);

    (function (i) {
        row.addEventListener('click', function(){});
    })(i);

    row.insertCell(0).innerHTML = myJson[i]["name"];
    row.insertCell(1).innerHTML = myJson[i]["name"];;
    row.insertCell(2).innerHTML = myJson[i]["region"];
    row.insertCell(3).innerHTML = myJson[i]["surface"];
    row.insertCell(4).innerHTML = myJson[i]["population"];
}