jQuery click()多次输出错误按钮的信息

时间:2016-03-27 00:56:53

标签: javascript jquery html

首先,这是我的代码:

$.each(obj, function(k,v) {   // k ==== key, v === value
{
    output = "";

    output = output.concat(v.info1);
    output = output.concat("<br />");

    output = output.concat(v.info2);
    output = output.concat("<br />");

    output = output.concat("<br />");

    var a = document.createElement('a');
    a.innerHTML = output;
    $("#myDiv").append(a);
    $("#myDiv").on('click', a, function(e) {
        //alert(output);
        var w = window.open("");
        w.document.write(output);
    });
});

现在,这就是我正在尝试的。在每次迭代中,我想附加一个&#34;输出&#34;字符串(到&#34; myDiv&#34;),点击后会打开一个新标签,并显示相关信息(现在就是&#34;输出&#34;字符串本身)。
使用上面的代码,当我点击任何链接时,它会打开与当前记录数一样多的新选项卡,每个选项卡仅显示有关最后一条记录的信息。
有人能告诉我哪里可能出错吗?谢谢!

1 个答案:

答案 0 :(得分:1)

$("#myDiv").on移到$.each之外 像这样:

$.each(obj, function(k,v) {   // k ==== key, v === value
  output = "";

  output = output.concat(v.info1);
  output = output.concat("<br />");

  output = output.concat(v.info2);
  output = output.concat("<br />");

  output = output.concat("<br />");

  var a = document.createElement('a');
  a.innerHTML = output;
  $("#myDiv").append(a);
});

$("#myDiv").on('click', 'a', function(e) {
  var w = window.open("");
  w.document.write(this.innerHTML);
});