以编程方式在JavaScript中设置唯一对象ID

时间:2016-10-07 20:43:01

标签: javascript arrays json foreach

我有以下代码

<div id='show_test'></div>

var matches = [{
    "category_name": "category_1",
    "stock_name": "stock_1",
    "supplier_stock": "supplier_stock_1"
}, {
    "category_name": "category_2",
    "stock_name": "stock_2",
    "supplier_stock": "supplier_stock_2"
}, {
    "category_name": "category_3",
    "stock_name": "stock_3",
    "supplier_stock": "supplier_stock_3"
}, {
    "category_name": "category_4",
    "stock_name": "stock_4",
    "supplier_stock": "supplier_stock_4"
}];
matches.forEach(function(i, item) {
    var arrayDt = [];
    arrayDt[i, item] = {
        "category_name": this.category_name,
        "stock_name": this.stock_name,
        "supplier_stock": this.supplier_stock
    };
    document.getElementById("show_test").innerHTML += "<div><a id='bt_" + item + "'>click</a></div>";

    document.getElementById("bt_" + item).onclick = function() {
        show_data(i);
    }

    console.log(document.getElementById("bt_" + item));
    console.log(i);

});

function show_data(data) {
    alert(JSON.stringify(data));
}

在页面上我们显示4个链接,当我点击最后一个链接时,脚本按预期运行。但不是第一个3.为什么这不适用于前3个链接?

https://jsfiddle.net/a35wL5ht/

1 个答案:

答案 0 :(得分:0)

替换

var el = document.createElement("div");
var a =  document.createElement("a");
a.innerHTML = "click";
a.id = "bt_" + item;
el.appendChild(a);
document.getElementById("show_test").appendChild(el);

def find_second_occurrence(xs,v):
    num_occurrence = 0
    for i in range(len(xs)):
        for j in range(v):
            if (xs)[i] == (v)[j]:
                num_occurrence = i
            return str((xs,v)[num_occurrence])