2009-11-09 8 views
6

1の値を持つテキスト入力の数を数える必要があります。jQuery:特定の値を持つ入力の数をカウントする

私は以下を試しましたが運がありません。

$('.class[value="1"]').length 
$('.class:contains("1")').length 

$('.class[value="1"]')を使用すると、技術的には、テキスト入力の値は負荷後に変更されている場合しかし、それはまだそのデフォルトの負荷値として、それをカウントし、動作します。

.liveクリックイベントを使用して現在の値を取得しても、まだ運がないということは長時間掛かりました。

私は$('.class:contains("1")')

を使用して、まったく運がなかったことは、非常にシンプルなようだが、今のところ、私の目を逃れています。

+0

のようなマークアップは何ですか? –

答えて

14

この例では、これが機能することを示しています。また

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $("#btn").click(function() { 
    alert($(":input[value='1']").length); 
    }); 
}); 
</script> 
</head> 
<body> 
<input type="text"> 
<input type="text"> 
<input type="text"> 
<input type="button" id="btn" value="How many?"> 
</body> 
</html> 

することができますだけループ:あなたはあなたがしたい場合は$ .each()で、現在のvalを()の値反復処理する必要が

var matches = 0; 
$(":input.class").each(function(i, val) { 
    if ($(this).val() == '1') { 
    matches++; 
    } 
}); 
+0

私はJQueryが短い1つのライナーを持っていると思っていましたが、それは動作します。ありがとうございました! – ticallian

+0

ありがとうたくさんの仲間:) –

4

k=0; 
$('.class').each(function(i, e) { 
    if ($(e).val() == "1") k++; 
}); 
1
$(':input.class').filter(function() { 
    return $(this).val() == '1' 
})