getElementById auf Teil der ID-Bezeichnung anwenden ?

  • Themenstarter Themenstarter TobiNeu
  • Beginndatum Beginndatum
T

TobiNeu

Hallo,

habe folgendes Problem

in meinem Baum erstell ich div bereiche nach dem Muster:

<div id="einheit-1" ..> ..</div>
<div id="einheit-2" ..> ..</div>
<div id="einheit-3" ..> ..</div>
<div id="einheit-4" ..> ..</div>


Die Anzahl der Elemente ist variable.

Nun müsste ich in JavaScript sowas in der Art machen:

while (document.getElementById('einheit-*') != null) {
spreche_div_einzeln_an();
}

Auf was ich hinaus will, ich will alle divs ansprechen deren ID mit "Einheit-" begint.
Ich weiß leider nicht nach was ich suchen soll.

Wäre klasse wen mir jemand helfen könnte

Danke
 
dazu sagen sollte ich wohl noch das die nr in der id unterschiedlich sein kann d.h. es kann z.b. wie folgt aussehen

<div id="einheit-711"> </div>
<div id="einheit-1711"> </div>
<div id="einheit-7121"> </div>
<div id="einheit-1"> </div>
<div id="einheit-321"> </div>
<div id="einheit-44543"> </div>
 
Ich denke du müsstest alle vorhanden Elemente durchgehen (document.getElementsByTagName("div");) und deren ID prüfen.
Zum Beispiel so:

Javascript:
function MyFunction()
{
  elements = document.getElementsByTagName("div");
  for (i=0; i<elements.length; i++)
  {
    if (elements[i].id.substr(0, 8)=="einheit-")  // Der Bindestrich ("-") ist das siebte Zeichen
    {
      // MACH WAS
    }
  }
}

Eventuell kannst du die Funktion auch verallgemeinern:
Javascript:
function getElementsByPrefix(tag, prefix)
{
  elements = document.getElementsByTag(tag);
  arr = new Array();
  for (i=0; i<elements.length; i++)
  {
    if (elements[i].id.substr(0, prefix.length)==prefix)
    {
      arr.push_back(elements[i]);
    }
  }
}

Beide Funktionen sind ungetestet!
 
Zuletzt bearbeitet:
Code:
elements = document.getElementsByTagName("div");
  for (i=0; i<elements.length; i++)
  {
    if (elements[i].id.substr(0, 8)=="einheit-")  // Der Bindestrich ("-") ist das siebte Zeichen
    {
      // MACH WAS
    }
  }

weltklasse danke
damit komme ich auf alle werte und elemente die ich benötige :)

vielen dank
 

Neue Beiträge

Zurück