使用 jQuery 循环.each(function(){});
例子:
var arr = [],
check = '';
$('.commander_check').each(function() {
if (
$(this).prop('checked') && $(this).data('check') == '' ||
!$(this).prop('checked') && $(this).data('check') == 'checked'
) {
check = $(this).prop('checked') ? 'ON' : 'OFF';
arr[$(this).data('login')][check].push({
'id': $(this).data('id'),
'profit': $(this).data('profit')
});
}
});
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="checkbox" class="commander_check" data-check="checked" data-id="19727899" data-login="old" data-profit="ok">
我想得到一个数组['old']['OFF'][['id'=>19727899, 'profit'=>'ok'],[...],...]
但由于某种原因它会抛出一个错误Cannot read property 'OFF' of undefined
任务:遍历复选框参数,如果.prop('checked')
不匹配$(this).data('check')
则写入多维关联数组,所以实际记录不起作用
也许你想做这样的事情:
您在添加到数组时遇到问题。
谢谢@Yuri - 解决方案的目标是正确地面向基点,我只是更正了镜头的坐标
首先更改
var arr = []
为var arr = {}
@Yuri指出的并在填充前检查空值
为什么最后
[]
- 显然.push();
不适用于对象,而只能用于数组。