peterS.: getElementsByClassName als Methode von document?

Beitrag lesen

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:]