2012-01-06 7 views
-3

私は同じ値を持っている場合、いくつかの入力をチェックする少しのプラグインに取り組んでいます。私はこれを行う最良の方法は、配列に値を格納し、値が一意であるかどうかを確認することです、またはこれを行うためのよりよい方法がありますか?JS:ループ内の配列に値を格納する(それぞれ)方法とこれを比較するには?

//アイデア

$('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.... 
    }; 
}); 
+1

入力の*値*を確認したい場合は、コードで "class"属性が表示されるのはなぜですか?あ、ちょっと待って;クラスで類似の値をチェックしたいのですが...要素が複数の "クラス"値を持つことができるので、これは非常に壊れやすいものです。より適切には、「クラス」は意味的には値のリスト*である。 – Pointy

+1

「真の偽りに戻る」とはどういう意味ですか? – Blazemonger

+0

これらの入力が返すことができるデータ型は何ですか? –

答えて

0

私はそれのためにオブジェクトを使用します。

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

これは、あなたが簡単に値を含む他の要素にアクセスできるという利点があります。

+0

クイックヘルプありがとう! – user759235

0
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

ありがとう、私はこれをチェックします! – user759235

関連する問題