嘿所有我试图找出一种方法将数据添加到JS对象,当我循环查看页面上的哪些复选框时:
jQuery('#doaction').click(function () {
var bulkSelected = jQuery('#bulkAction').val();
var checkCount = 1;
if (bulkSelected == 0) {
console.log('no bulk selected category');
jQuery('#overlay-shade').fadeOut(300);
} else {
var doBulk = {
called: '' + bulkSelected + '',
};
jQuery('input[type=checkbox]').each(function () {
if (jQuery(this).attr('id') != 'selectAll') {
var isChecked = (this.checked ? true : false);
if (isChecked == true) {
console.log(jQuery(this).attr('id'));
console.log(jQuery(this).attr('data-accnum'));
}
checkCount++;
}
});
}
.attr(' data-accnum')的数字如下所示。我需要它采用这种格式:
(复选框名称:accnum)
var doBulk = {
chk1: 52136523168,
chk2: 54298851631
ect..ect...
};
我该怎么做?
答案 0 :(得分:1)
尝试:
var doBulk = {};
jQuery('input[type=checkbox]').each(function () {
if (jQuery(this).attr('id') != 'selectAll') {
var isChecked = (this.checked ? true : false);
if (isChecked == true) {
doBulk[jQuery(this).attr('id')] = +jQuery(this).attr("data-accnum");
}
checkCount++;
}
});
console.log(doBulk);
答案 1 :(得分:0)
jQuery有一个:checked选择器,以及一个not方法,我们只使用它来获取非#selectAll
的所有选中输入。
然后,您只需使用bracket notation将其添加到doBulk
对象,就可以从doBulk
函数中访问each
对象,因为javascript有closures
var doBulk = {}
, checked = jQuery('input[type=checkbox]:checked').not('#selectAll')
, checkCount = checked.length;
checked.each(function () {
doBulk[this.id] = jQuery(this).attr('data-accnum');
});