peterS.: *checked* radio-controls filtern

Beitrag lesen

gruss Tolwin,

mir geht es nicht um eine For Schleife die Buttons zu count ...
sondern gibt es eine JS Funktion die Objekte direkt countet?

nein, es ist auch nicht sinnvoll, so etwas zu implementieren.
Du hast aber immer die moeglichkeit, die laenge von [NodeList]s
bzw. die laenge von [HTMLCollection]s oder eben die von [Array]s
abzufragen.

falls sich in Deinem speziellen fall alle "radio-controls" in
einem einzigen formular tummeln, koenntest Du auch direkt die
[elements]-collection dieses formulars durchlaufen, um alle
*input-type-radio*-elemente zu filtern und anschliessend die
laenge des durch den filter zurueckgegebenen arrays abfragen.

beispielhaft saehe dass dann so aus:

var formRadioControls = [link:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/filter#Compatibility@title=Array.filter](document.forms[0].elements, (function (elm/*, idx, arr*/) {  
  
 return ((typeof elm.nodeName == "string") && (elm.nodeName.toLowerCase() == "input") && (elm.type == "radio"));  
}));  
alert("formRadioControls.length : " + formRadioControls.length);/*  
  
 oder eben fuer dokumentenweit alle radio-controls:  
*/  
var allRadioControls = Array.filter(document.getElementsByTagName("input"), (function (elm/*, idx, arr*/) {  
  
 return (elm.type == "radio");  
}));  
alert("allRadioControls.length : " + allRadioControls.length);/*  
  
oder kuerzer:  
*/  
var amountOfAllRadioControls = Array.filter(document.getElementsByTagName("input"), (function (elm) {  
  
 return (elm.type == "radio");  
  
})).length;  
  
alert("amountOfAllRadioControls : " + amountOfAllRadioControls);

da Du aber ganz speziell wissen willst, welcher "radio-control"
(pro radio-gruppe) *checked* ist, kann obige loesung gleich
umgebaut werden:

var allCheckedRadioControls = Array.filter(document.getElementsByTagName("input"), (function (elm/*, idx, arr*/) {  
  
 return ((elm.type == "radio") && elm.checked);  
}));

so long - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]