ЯШ: Как сохранить значения в массиве в цикле (каждый) и сравнить это? - PullRequest
0 голосов
/ 06 января 2012

Я работаю над небольшим плагином, который проверяет пару входных данных, если они имеют одинаковые значения.Я думаю, что лучший способ сделать это - сохранить значения в массиве и проверить, являются ли значения уникальными, или есть лучший способ сделать это?

// идея

$('input').each(function(){
   var type = $(this).attr('class');//can be a other attribute
   switch(type){
      case: 'red':
      // some code
      break;

      case: 'green':
      // some code
      break;

      case: 'black':
      // the code to see if all inputs with the class black 
      //if they have the same value return in true or false, if all of the values
      // are empty it should return false
      break;

      // more cases....
   };
});

Ответы [ 2 ]

0 голосов
/ 06 января 2012
function checkMatchingValues(cssClass) {
    var value, matching = true;
    $('input#' + cssClass).each(function() {
        if(value == undefined) {value = this.val(); return}
        if(value != this.var()) {matching = false; return}
    }
    return matching;
}
0 голосов
/ 06 января 2012

Я бы использовал для этого объект:

var values = {};
var dupFound = false;
$(...).each(function() {
    var value = $(this).val();
    if(values[value]) {
        dupFound = true;
    }
    else {
        values[value] = this;
    }
});

Это имеет то преимущество, что вы можете легко получить доступ к другому элементу, содержащему значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...