将onclick事件添加到jQuery.each()

时间:2017-09-27 09:44:51

标签: javascript jquery json

我是Javascript和jQuery的新手。这是我的JSON文件。我想在jQuery.each()中添加一个jQuery onclick事件。这是我的代码。

  override func viewWillDisappear(_ animated: Bool) {

    self.TopConstraint.constant = 0

    self.view.layoutIfNeeded()

}

以下代码效果很好

{
  "1": [{
    "RequestId": "1",
    "CustomerId": "1",
    "RequestCharge": "100.00",
    "Trade": ""

  }],
  "2": [{
    "RequestId": "1",
    "CustomerId": "1",
    "RequestCharge": "100.00",
    "Trade": ""
  }],
  "3": [{
    "RequestId": "1",
    "CustomerId": "1",
    "RequestCharge": "50.00",
    "Trade": ""
  }]
}

但是我想添加一个click函数,每个函数都给出i的值。 这是我的代码,但我未定义。

 $.each(output, function(i) {                   
    var tr = $('<tr/>');
    tr.append("<td>" + output[i][0].RequestId + "-"  +"</td>");
    tr.append("<td>" + output[i][0].CustomerId + "-" + "</td>");
    tr.append("<td>" + output[i][0].RequestCharge + "</td>");
    $("#whad").append(tr);
    });

这是我的HTML。

$.each(output, function(i) {                    
        var tr = $('<tr/>');
        tr.append("<td>" + output[i][0].RequestId + "-"  +"</td>");
        tr.append("<td>" + output[i][0].CustomerId + "-" + "</td>");
        tr.append("<td>" + output[i][0].RequestCharge + "</td>");
        $("#whad").append(tr).click(function() {
            console.log("This is the value of i clicked: " + this.i)
        });
        });

我需要this.i来返回单击的值。

1 个答案:

答案 0 :(得分:0)

您可以将json解析为对象:

var obj = JSON.parse(text);

然后从对象中检索值:

obj["1"][0].RequestId

如果要全部显示它们,则需要遍历数组并打印所需的值:

for (var i = 0; i<output.length; i++) {
    $("#YOURDIV").append("Request id: " + obj[i][0].RequestId);
    $("#YOURDIV").append("Customer id: " + obj[i][0].CustomerId);
    $("#YOURDIV").append("Request Charge : " + obj[i][0].RequestCharge);
}