使用javascript将复选框值推入到数组中

问题描述:

我有一堆复选框,每个复选框的值都是不同的价格。我创建了一个对象,该对象包含将该值插入数组(如果该框被选中)的功能。当我控制台登录空数组时,它显示为空,所以我知道这是有效的。我只是无法得到它与控制日志与推入的值。使用javascript将复选框值推入到数组中

<input type="checkbox" id="bac" value ="1">bacon - $1 


var allIngredients = { 

ingredientArray: [], 
baconBox: function() { 
    var bacon = document.getElementById('bac'); 
    if (bacon.checked === true) { 
    this.ingredientArray.push(bacon.value); 
    } 
}, 

编辑:

console.log(allIngredients.ingredientArray); 

返回一个空数组这样 “[]”。我无法得到它返回一个数组与培根的价值,就像这个“[1]”当我检查框。培根的价值是1.

+1

你是否在任何地方调用'baconBox'函数? – Cerbrus

+1

'我只是无法得到它与控制台日志中的推入的值... ...你会需要代码'console.log(某事)'如果你想console.log的东西......不是你认为? –

+0

正如@Cerbrus所说的,你必须在某处调用它,就像在改变复选框的事件监听器中一样。 – Walk

正如其他人在评论中指出的,你应该调用函数allIngredients.baconBox()

一种选择是添加事件侦听器,像这样:

document.getElementById('bac').addEventListener('change', function() { 
    allIngredients.baconBox(); 
}); 

虽然这种方法的缺点是,取消勾选框不会从你的allIngredients阵列删除bacon.value