Javascript 将不同的数组传递给onclick函数
我想将不同的数组值传递给onclick函数,当单击按钮显示结果时。单击第一个“显示”按钮时,我的预期结果应该是4和5,第二个“显示”按钮应该是5和6。但是我的代码只显示了第一个和第二个按钮的5和6,我如何才能得到预期的结果Javascript 将不同的数组传递给onclick函数,javascript,arrays,onclick,Javascript,Arrays,Onclick,我想将不同的数组值传递给onclick函数,当单击按钮显示结果时。单击第一个“显示”按钮时,我的预期结果应该是4和5,第二个“显示”按钮应该是5和6。但是我的代码只显示了第一个和第二个按钮的5和6,我如何才能得到预期的结果 <table name="itemTable" id="itemTable" style="width:100%"> <tr> <th style="width:5%"></th> <th style="w
<table name="itemTable" id="itemTable" style="width:100%">
<tr>
<th style="width:5%"></th>
<th style="width:5%"></th>
<th style="width:50%">2</th>
<th style="width:10%">3</th>
<th style="width:15%">4</th>
<th style="width:15%">5</th>
</tr>
</table>
<script type="text/javascript">
var member_data= [];//if declare here, all all of the row get the latest id
addrow(1);
addrow(2);
function addrow(branch_id){
//var member_data= [];//if declare here will show "member_data is not defined"
member_data= [];
member_data.push({
phone: 123,
name: "aaa",
id: 3 + branch_id
});
member_data.push({
phone: 456,
name: "bbb",
id: 4 + branch_id
});
ttt(branch_id,member_data);
}
function ttt(branch_id,member_data){
var table = document.getElementById("itemTable");
var tableRow = table.rows.length;
var row = table.insertRow(tableRow);
var cell1 = row.insertCell(0);
cell1.innerHTML =
'<button type="button" onclick="show_member(member_data)">Show</button>'//this line of show "member_data is not defined"
+ '<input type="text" name="branch" value="'+branch_id+'">';
}
function show_member(aaa){
for (var i = 0; i < aaa.length; i++) {
//console.log(aaa[i]);
alert(JSON.parse(aaa[i].id));
}
}
2.
3.
4.
5.
var成员_数据=[]//如果在此处声明,则所有行都将获得最新的id
addrow(1);
addrow(2);
函数addrow(分支\u id){
//var member_data=[];//如果在此处声明将显示“member_data未定义”
成员_数据=[];
成员_data.push({
电话:123,
名称:“aaa”,
id:3+分支机构id
});
成员_data.push({
电话:456,
名称:“bbb”,
id:4+分支机构id
});
ttt(分支机构id、成员数据);
}
功能ttt(分支机构id、成员数据){
var table=document.getElementById(“itemTable”);
var tableRow=table.rows.length;
变量行=table.insertRow(tableRow);
var cell1=行插入单元格(0);
cell1.innerHTML=
'Show'//这行Show“未定义成员数据”
+ '';
}
功能显示成员(aaa){
对于(变量i=0;i
单击第一个“显示”按钮时,我的预期结果应该是4
第二个“显示”按钮应该是5和6。但我的代码只是
第一个和第二个按钮显示5和6
因为在调用onclick时,成员数据已经更改,因为它是全局定义的,并且每个新按钮的值都会更新
将addRow
方法更改为以下方法,以便member\u data
现在包含所有分支的数据
function addrow(branch_id){
member_data= [];
member_data[branch_id].push({
phone: 123,
name: "aaa",
id: 3 + branch_id
});
member_data[branch_id].push({
phone: 456,
name: "bbb",
id: 4 + branch_id
});
ttt(branch_id,member_data);
}
类似地,ttt
function ttt(branch_id,member_data){
var table = document.getElementById("itemTable");
var tableRow = table.rows.length;
var row = table.insertRow(tableRow);
var cell1 = row.insertCell(0);
cell1.innerHTML =
'<button type="button" onclick="show_member(member_data, '+ branch_id +')">Show</button>'//this line of show "member_data is not defined"
+ '<input type="text" name="branch" value="'+branch_id+'">';
}
功能ttt(分支机构id、成员数据){
var table=document.getElementById(“itemTable”);
var tableRow=table.rows.length;
变量行=table.insertRow(tableRow);
var cell1=行插入单元格(0);
cell1.innerHTML=
'Show'//这行Show“未定义成员数据”
+ '';
}
最后,将_成员显示为
function show_member(aaa, branchId){
for (var i = 0; i < aaa[branchId].length; i++) {
//console.log(aaa[i]);
alert(JSON.parse(aaa[branchId][i].id));
}
}
函数显示\u成员(aaa、branchId){
对于(var i=0;i
我跟随addrow,它显示“无法读取未定义的属性'push'”@Arzozeus抱歉,在推送成员数据[branch_id]=[]之前添加此项代码>谢谢@gurvinder372,我能得到我想要的,非常感谢