D.R.: GetElementById/GetElementsByTagName

Beitrag lesen

Hallo,

function getElementsByClassName(myName){
var CONTROLS = "*";
var result = [];
var searchExpression = new RegExp( "\b" + myName + "\b" );
  for (var i = 0; i < CONTROLS.length;i++)

Diese Schleife erscheint mir unsinnig - CONTROLS ist kein Array, und nur wenn es eins wäre, wäre die folgende Schleife sinnvoll:

Stimmt eigentlich, allerdings habe ich sie unsinnig gemacht, da vorher mehrere TagNames in der Variable „Controls“ standen. Nur finde ich eine Beschränkung auf bestimmte Elemente irgendwie nicht besonders sinnvoll und hatte die TagNames deshalb gegen ein „*“ ausgetauscht.

{var objects = document.getElementsByTagName(CONTROLS[i]);
   for (var j = 0; j < objects.length;j++)
   if (objects[j].className.match(searchExpression))

Hier solltest du erst mal überprüfen, ob das aktuelle Objekt überhaupt eine value-Eigenschaft hat - wenn du nämlich über alle Elemente im Dokument iterierst, haben nur die wenigsten davon eins.

OK, if-Schleife ist eingefügt. Jetzt funzt es :)

  
function getElementsByValue(myValue){  
 var result = [];  
 var searchExpression = new RegExp( "\\b" + myValue + "\\b" );  
  var objects = document.getElementsByTagName("*");  
   for (var j = 0; j < objects.length;j++){  
    if (objects[j].value){  
   if (objects[j].value.match(searchExpression))  
     result.push(objects[j])}}  
 return result;  
}  

Danke nochmal.

mfg. Daniel