javascript将值传递给函数不起作用

时间:2018-04-26 06:18:27

标签: javascript

昨天我问了这个问题,但我的代码不清楚所以无法得到答案,我试图在这里创建一个实际问题的复制品。

我想要做的是,这是一个html表,我正在迭代所有行,然后迭代到 每行的特定列 我附加了一个事件处理程序点击它应该输出一些计算对象,但它总是返回{"isTrusted":true}

 var ff = function(el){
    return function(el){ alert(el) }; // the output is always {"isTrusted":true}
 }

function Fi(selector, func) {
         document.querySelectorAll(selector).forEach(function(node{
          node.onclick = func;
          })
       ;}

//-------------- main calling code--------------------------------

 document.querySelectorAll('#myTable > tbody > tr').forEach(function (node) {

    cells = node.querySelectorAll('td');
    var info = {};
    info.age = cells[1].innerText;
    Fi('td:nth-child(1) > a', ff(info));

})

编辑:

我试过这样做:

var ff = function (el) {
   return function() { alert(el) };
}

BUt问题是 对于表的每一行,都应该创建一个新的信息对象,这实际上正在发生,

document.querySelectorAll('#myTable > tbody > tr').forEach(function (node) {

    cells = node.querySelectorAll('td');

  //--------->loop over all rows and create info object

    var info = {};
    info.age = cells[1].innerText;

   //---------> when the cell is clicked always the last info object is shown but for every row it should be different

    Fi('td:nth-child(1) > a', ff(info));

})

1 个答案:

答案 0 :(得分:2)

    self.assertSequenceEqual(
        list(df['some_column']),
        list(someOtherSeries))

var ff = function(el){ return function(el){ alert(el) }; // the output is always {"isTrusted":true} } 采用参数ff。然后它返回一个接受参数el的函数。后者el会影响前者el。所以el将是直接传递给事件处理程序的参数,而不是传递给el的参数(并且它将是ff对象)。

删除内部Event参数:

el