【发布时间】:2017-07-13 15:07:22
【问题描述】:
我是编码新手,我正在寻找一种方法来从生成的按钮为我的数组的每个对象启动特定的原型方法
我有 json 数据要循环,并将每个对象包含在一个 js 数组中。
//我的数据有3个对象
var readArr = JSON.parse(myData)
var js_arr = [];
// 在对象数组上循环
for (var i = 0; i < readArr.length; i++) {
var generatedObject = new Object();
//来自原型的init方法
generatedObject.init(readArr[i].prop1, readArr[i].prop2, readArr[i].prop3, readArr[i].prop4, readArr[i].prop5,
readArr[i].prop6, readArr[i].prop7, readArr[i].prop8);
js_arr.push(generatedObject);
//生成一个 div,其中包含每个出现的按钮
var newCntent = document.createElement('div');
newCntent.id = readArr[i].prop1 + i;
newCntent.className = "cntent";
document.getElementById('zone_btn').appendChild(newCntent);
//在div里面创建一个按钮
var newBtn = document.createElement('div');
newBtn.id = i + readArr[i].prop1;
newBtn.className = "etalonBtn";
newBtn.innerHTML = readArr[i].prop1;
document.getElementById(newCntent.id).appendChild(newBtn);
我的 Object 类上有一个原型方法,我想要的是为每个与按钮链接的对象启动该方法。 第一个生成的按钮将启动 js_arr[0] 的方法,第二个用于 js_arr[2],...如何编写当我单击按钮时,该方法必须由“数组的对象”调用实现了你的创作”
我不知道如何做到这一点我尝试了几件事:
newBtn.addEventListener('click', function () {
read_arr[i].DisplayUpdate();
});
};
(返回的 read_arr[i] 没有定义),所以我只想用这个现在著名的来改变 read_arr[i] :“允许你创建的数组的对象”! 我真的需要这方面的帮助......
感谢您的期待,并为这个学前英语感到抱歉。
【问题讨论】:
-
你在哪里设置事件监听器?它在循环内吗?
-
是的,这是个坏主意吗?这个概念是生成带有相关 onclick 事件的按钮,但我不知道它是否相关......
标签: javascript arrays object prototypejs