2015-07-18 1 views
0

Я пытаюсь отслеживать изменения состояния флажка по следующему коду, но я не уверен, что мне нужно передать любой параметр (индекс) в анонимную функцию на $.each(, function(index))

причина, по которой я прошу это код функционирует так же, как функция либо принимает или не в index в качестве параметра, но когда я удалить его я получаю эту object collection, function(Number, Object):Object callback подсказке на $.each()

enter image description here

$('input:checkbox[name=options]').on('change', function() { 
 
      var val = ''; 
 
      $.each($('input:checkbox[name=options]:checked'), function(index) { 
 
       val += $(this).val(); 
 
      }); 
 
      switch (val) { 
 
       case 'a': 
 
        console.log(val); 
 
        break; 
 
       case 'b': 
 
        console.log(val); 
 
        break; 
 
       case 'c': 
 
        console.log(val); 
 
        break; 
 
       case 'ab': 
 
        console.log(val); 
 
        break; 
 
       case 'ac': 
 
        console.log(val); 
 
        break; 
 
       case 'abc': 
 
        console.log(val); 
 
        break; 
 
       case 'bc': 
 
        console.log(val); 
 
        break; 
 
       } 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 

 
    <input type="checkbox" name="options" value="a" />Red<br/> 
 
    <input type="checkbox" name="options" value="b" />Yellow<br/> 
 
    <input type="checkbox" name="options" value="c" />Orange<br/>

вы можете, пожалуйста, дайте мне знать, если это правильно или я должен держать индекс внутри функции, даже когда я NIT использовать его?

+0

, если вы не используете 'index' внутри функции, неважно, проходите вы это или нет. – doldt

ответ

0

Есть 2 версии each один $.each другого $.fn.each

Используйте $.fn.each синтаксис для перебора элементов.

$(selector).each(function(){  
    //"this" is element 
}); 

Другое обычно используется для итерации литералов объектов и массивов.

Что касается аргументов, которые вы предоставляете, они, по существу, по желанию, хотя использовать второй также необходимо первый

Код:

$.fn.each docs

$.each docs

+0

Спасибо charlietfl, можете ли вы, пожалуйста, сообщить мне, как я могу заменить '. .ee()' на '. .fn.each()' здесь? – Suffii

+0

Я сделал ... использую вашу селекторную строку вместо моего «селектора». Я не мог копировать с изображения. – charlietfl

+1

Итак, это будет '$ ('input: checkbox [name = options]: checked'). Each (...' для вашего примера –