Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向数组添加对象_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 向数组添加对象

Javascript 向数组添加对象,javascript,jquery,arrays,Javascript,Jquery,Arrays,我试图通过单击事件将对象推送到数组中。尽管模板显示了多个对象,但数组似乎只包含一个对象 我使用带有数据属性的html将特许经营id和名称值从控制器传递到细枝模板,如下所示: <a data-id="{{ franchise.franchise_id }}" data-name="{{ franchise.franchise_name }}" class="btn add-to-list"> Add to List </a> 如果有人能识别

我试图通过单击事件将对象推送到数组中。尽管模板显示了多个对象,但数组似乎只包含一个对象

我使用带有数据属性的html将特许经营id和名称值从控制器传递到细枝模板,如下所示:

<a
    data-id="{{ franchise.franchise_id }}"
    data-name="{{ franchise.franchise_name }}"
    class="btn add-to-list">
    Add to List
</a>
如果有人能识别出我的错误,我将不胜感激


谢谢

每次单击
.add to list
元素时,您都在创建一个名为
特许经营
的新变量。您需要在click处理程序之外声明变量。

每次单击
.add to list
元素时,您都在创建一个名为
特许权
的新变量。您需要在click处理程序之外声明变量。

每次调用匿名箭头函数时,您都在重新创建特许权数组。如果您希望将特许权数组添加到函数中,则必须在函数定义之外声明特许权数组。 因此,守则如下:

let franchises = [];
$(".add-to-list").on('click', () => {

let franchise;

let id = $(this).data("id");
let name = $(this).data("name");

franchise = {
    'id': id,
    'name': name
};

franchises.push(franchise);

$.each(franchises, (index, value) => {
    $("#choices").append('<a class="list-group-item" id='+value.id+'>
' + value.name + '<span class="pull-right">&times;</span></a>');
});
});
让特许经营权=[];
$(“.add to list”)。在('单击',()=>{
让特许经营权;
设id=$(this).data(“id”);
让name=$(this.data(“name”);
特许经营权={
“id”:id,
“名称”:名称
};
特许经营权。推送(特许经营权);
美元。每个(特许经营权,(指数,价值)=>{

$(“#choices”).append(“

每次调用匿名箭头函数时,您都在重新创建特许权数组。如果要将特许权数组添加到函数中,则必须在函数定义之外声明特许权数组。 因此,守则如下:

let franchises = [];
$(".add-to-list").on('click', () => {

let franchise;

let id = $(this).data("id");
let name = $(this).data("name");

franchise = {
    'id': id,
    'name': name
};

franchises.push(franchise);

$.each(franchises, (index, value) => {
    $("#choices").append('<a class="list-group-item" id='+value.id+'>
' + value.name + '<span class="pull-right">&times;</span></a>');
});
});
让特许经营权=[];
$(“.add to list”)。在('单击',()=>{
让特许经营权;
设id=$(this).data(“id”);
让name=$(this.data(“name”);
特许经营权={
“id”:id,
“名称”:名称
};
特许经营权。推送(特许经营权);
美元。每个(特许经营权,(指数,价值)=>{

$(“#选项”)。追加(“

每次单击
.add to list
元素时,您都在创建一个名为
特许经营权
的新变量。您需要在单击处理程序之外声明该变量。@sidney太棒了!真是太好了!感谢您的帮助!我怎么能相信您的回答?给他寄一张100美元的亚马逊礼品卡!!!啊,我没有感觉到如果没有代码示例,答案是值得的。但既然你问了…而且,如果可能的话,我更愿意以RAM sticks支付(/s)每次单击
.add to list
元素时,您都在创建一个名为
特许经营权
的新变量。您需要在单击处理程序之外声明该变量。@sidney太棒了!真高兴!非常感谢您的帮助!我怎么能相信您的回答?给他寄一张100美元的亚马逊礼品卡!!!啊,我不觉得这是一个错误没有代码示例,回答是值得的。但是既然你问了…而且,如果可能的话,我更愿意用RAM sticks支付(/s)谢谢你的建议和链接!谢谢你的建议和链接!
let franchises = [];
$(".add-to-list").on('click', () => {

let franchise;

let id = $(this).data("id");
let name = $(this).data("name");

franchise = {
    'id': id,
    'name': name
};

franchises.push(franchise);

$.each(franchises, (index, value) => {
    $("#choices").append('<a class="list-group-item" id='+value.id+'>
' + value.name + '<span class="pull-right">&times;</span></a>');
});
});