2009-11-09 10 views
6

ich die Anzahl der Texteingaben mit einem Wert von 1jQuery: Count Anzahl der Eingänge mit einem bestimmten Wert

zählen muss ich versucht haben, die folgenden, aber ohne Glück.

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

Mit $('.class[value="1"]') technisch funktioniert jedoch, wenn die Werte in der Texteingabe werden nach Belastung verändert, es zählt immer noch als Standard-Ladewert.

nahm ich einen langen Schuss durch das .live Click-Ereignis mit dem aktuellen Wert zu erhalten, aber noch kein Glück.

hatte ich kein Glück bei allen mit $('.class:contains("1")')

sehr einfach Es scheint, aber mir bisher entgangen ist.

+0

was ist das Markup wie? –

Antwort

14

Dieses Beispiel zeigt, dass dies funktioniert:

<!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> 

Alternativ können Sie einfach Schleife:

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

Ich dachte, JQuery eine Kurz Einzeiler haben können, ist es jedoch funktioniert. Vielen Dank! – ticallian

+0

danke viel kumpel :) –

4

Sie müssen sich mit .each $ iterieren(), wenn Sie aktuelle val wollen() Werte:

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