2013-04-30 3 views
0

Привет всем я пытаюсь выяснить способ, чтобы добавить данные в объект JS, когда я петля, чтобы увидеть, какие галочки на странице проверяются:флажков Loop и встроенный JavaScript литерал объекта

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

Я угадываю ключи («chk1», «chk2» и т. Д.) Являются «идентификаторами» флажков? – Ian

+0

@ian да, вы были бы правы. – StealthRT

ответ

1

Try:

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); 
+0

Вы поняли. Спасибо, Ian – StealthRT

+0

@StealthRT Прохладный, рад, что я мог бы помочь :) – Ian

0

JQuery имеет :checked селектор, а также метод not, который мы используем, чтобы получить только все проверили входы, которые не #selectAll.

Тогда вы просто добавить его в doBulk объекта с помощью bracket notation, доступ к 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'); 
    }); 
Смежные вопросы