hallo again Felix,
Ich bleibe lieber bei meiner ursprünglichen Version von meiner Funktion,
der ich eben einen optionalen zweiten Parameter mitgebe, der dann das
aktuelle HTML-Element referenziert, innerhalb dessen ich die Nachfahrenknoten
ermitteln lasse.
eben, das ist durchaus der ansatz fuer schlankeren und uebersichlicheren code;
und fuer den fall dieser einen methode sowiso.
window.getElementsByClassName = function (className, element) {
var muster = new RegExp("(^| )" + className + "($| )");
var alles = element.getElementsByTagName("*");
var gefunden = new Array();
var i;element = element ? element : document;
>
> ...
hier muesstest Du die letzte pruefung aber ganz nach oben ziehen und etwas
strikter pruefen, damit man Dir keinen mist unterjubeln kann; und auf das
leerzeichen als einzigen \*whitespace\* wuerde ich mich an Deiner stelle auch
nicht verlassen wollen.
~~~javascript
window.getElementsByClassName = function (className, element) {
var gefunden = [];
//if ((typeof className == "string") || (className instanceof String)) {
if (className) { // fliegt raus bei: [undefined], [null], [false], 0, "".
//element = ((element && ((typeof element.getElementsByTagName == "function") || ((typeof element.getElementsByTagName == "object") && !obj))) ? (element) : (document));
element = ((element && element.getElementsByTagName) ? (element) : (document));
var muster = new RegExp("(^|\\s+)" + String(className) + "($|\\s+)"); // typecast wenn nur ueber >>if (className) {<< geprueft
var alles = element.getElementsByTagName("*");
var i;
...
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:]
»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:]