hallo again mAciD,
var A_TextPCountry = document.getElementsByName("PB_TextPCountry");
Dieses globale Array lege ich zu Programmbeginn an.
hier steckt auch schon der fehler - [A_TextPCountry] ist kein array-
objekt, sondern ein sogenanntes [NodeList]-objekt bzw. in der fehlerhaften
implementierung von mozilla ein [HTMLCollection]-objekt.
diese listen lassen sich zwar wie arrays mit >>for (var i=0 ...)<<
iterieren, implementieren selber aber keinerelei array-methoden.
eine methode/funktion, die aus listen-strukturen native array-objekte
erzeugt, muss im kern anders geschrieben werden, als die beiden in den
vorherigen postings vorgestellten methoden/funktionen.
im modernen kern etwa so:
Array.make = (function (list) {
return Array.prototype.slice.call(list);
});
dieser ansatz scheitert aber schon im msie, da die delegation an
das prototypische [slice] mit fehler abbricht. das gleiche gilt
fuer strings, die ja ebenfalls als listen implementiert sein
koennten (dort versagt auch opera). browseruebergreifend ist nur
die delegation von[arguments]-arrays und nativen array-objekten
verlaesslich.
werbung in eigener sache:
ein wasserdichtes und performantes [Array.make]
laesst sich auf refactory.org finden.
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:]