keinBlase: Li element ansteuern wenn nur ID von UL bekannt ist

Hallo

Ich habe folgende Ausgangslage:

  
<ul id="meineID1">  
<li></li>  
<li></li>  
</ul>  
  
<ul id="meineID2">  
<li></li>  
<li></li>  
</ul>  

Die Li Elemente sind per CSS ausgeblendet (natürlich die UL auch).
Nun möchte ich per JS diese Elemente einblenden. Dafür habe ich jedoch nur die ID der <ul>s zur Verfügung
enableLi('meineID1');
enableLi('meineID2');

Wie kann ich die LI Elemente ansteuern, wenn ich nur die ID des jeweiligen UL kenne?

Ich habe versucht, dies mittels Auslesen der UL und Li elemente zu machen:

  
function enableBox(meineId) {  
	var allElems = document.getElementsByTagName('ul');  
	for (var i = 0; i < allElems.length; i++) {  
		var thisElem = allElems[i];  
		if (thisElem.id && thisElem.id == meineId) {  
			// und nun die LIs?  
		}  
	}  
	  
}  

Dies geht jedoch so nicht (da ich immernoch kein Zugriff auf die LI habe).

Am einfachsten würde es über CSS #meineID1 li{display:block;} gehen.
Doch meines Wissens kann ich per JS nur auf die ID, Class etc zugreifen, aber nicht auf Elemente mit ID einschränkungen.

Hat jemand eine Idee?

Thxn

  1. Hi,

    Wie kann ich die LI Elemente ansteuern, wenn ich nur die ID des jeweiligen UL kenne?

    Wenn du getElementsByTagName bereits kennst, dann möchte ich gern wissen, was jetzt eigentlich dein Problem ist?

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hallo

      Ich habe mehere Listen auf meiner Seite. Somit da ich zudem keine class oder id bei den LIs habe, kann ich die LI Elemente zwar ansteuern, kriege aber immer alle.
      Mein Problem ist also, dass ich nicht weiss, wie ich die LIs ansteuern kann, wenn ich nur die ID des übergeordneten UL kenne.

      Mit getElementsByTagName kriege ich zwar die LIs , aber wie in meinem Beispiel kann ich meines Wissens nicht auf das überligenede Element zugreifen

      Weisst du nun was ich meine? Wie würdest du die LIs ansteuern (ohne dabei alle LIs anzuzeigen)

      Thxn

      1. Ich habe mehere Listen auf meiner Seite. Somit da ich zudem keine class oder id bei den LIs habe, kann ich die LI Elemente zwar ansteuern, kriege aber immer alle.

        Mit getElementsByTagName in einem Array, deren Keys der Reihenfolge im DOM entsprechen.

        Mein Problem ist also, dass ich nicht weiss, wie ich die LIs ansteuern kann, wenn ich nur die ID des übergeordneten UL kenne.

        So wie du auch deine UL-Elemente findest, nur einfacher (wurde ja schon gesagt).

        Mit getElementsByTagName kriege ich zwar die LIs , aber wie in meinem Beispiel kann ich meines Wissens nicht auf das überligenede Element zugreifen

        http://de.selfhtml.org/javascript/objekte/node.htm#parent_node@title=parentNode

        Weisst du nun was ich meine? Wie würdest du die LIs ansteuern (ohne dabei alle LIs anzuzeigen)

        Ich würde eine JavaScript-Selektor-Engine verwenden und mich derartigen Low-Level-DOM-Dingen nicht mehr beschäftigen - das ist sehr zeitraubend :)

      2. Hi,

        Mein Problem ist also, dass ich nicht weiss, wie ich die LIs ansteuern kann, wenn ich nur die ID des übergeordneten UL kenne.

        In dem du per ID auf die Liste zugreifst, und dann *deren* Methode aufrufst, die dafür zuständig ist, dir alle Nachfahrenelemente dieser Liste mit einem bestimmten Tagnamen zu liefern.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hi,

    <ul id="meineID1">

    <li></li>
    <li></li>
    </ul>

    <ul id="meineID2">
    <li></li>
    <li></li>
    </ul>

      
    
    > Die Li Elemente sind per CSS ausgeblendet (natürlich die UL auch).  
      
    das ist ungünstig - blende \*nur\* die ul-Elemente aus. Die Kindelemente sind damit automatisch auch "weg".  
      
    
    > Nun möchte ich per JS diese Elemente einblenden. Dafür habe ich jedoch nur die ID der <ul>s zur Verfügung  
    > Wie kann ich die LI Elemente ansteuern, wenn ich nur die ID des jeweiligen UL kenne?  
      
    Das brauchst du dann nicht mehr.  
    Aber selbst wenn die li-Elemente noch behandelt werden müssen ...  
      
    
    > ~~~javascript
    
    function enableBox(meineId) {  
    
    > 	var allElems = document.getElementsByTagName('ul');  
    > 	for (var i = 0; i < allElems.length; i++) {  
    > 		var thisElem = allElems[i];  
    > 		if (thisElem.id && thisElem.id == meineId) {  
    > 			// und nun die LIs?  
    > 		}  
    > 	}  
    > }
    
    

    ... autsch! Warum versuchst du, getElementById() nachzuprogrammieren? Und dann, wie ChrisB schon sagte: Wenn du das ul-Element im DOM gefunden hast, und getElementsByTagName() kennst - wo liegt dann das Problem?

    Am einfachsten würde es über CSS #meineID1 li{display:block;} gehen.
    Doch meines Wissens kann ich per JS nur auf die ID, Class etc zugreifen, aber nicht auf Elemente mit ID einschränkungen.

    Hä? Du sprichst in Rätseln.

    So long,
     Martin

    --
    Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.
  3. Mahlzeit keinBlase,

    function enableBox(meineId) {
    var allElems = document.getElementsByTagName('ul');
    for (var i = 0; i < allElems.length; i++) {
    var thisElem = allElems[i];
    if (thisElem.id && thisElem.id == meineId) {

    Kürzer:

    thisElem = document.getElementById(meineId);

      	// und nun die LIs?  
    

    Ich kann ChrisB nur beipflichten: was genau ist eigentlich Dein Problem? Du schaffst es, mittels http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name@title=getElementsByTagName() auf alle <ul> innerhalb des Dokuments zuzugreifen, scheiterst aber daran, auf dieselbe Art und Weise auf alle <li> innerhalb eines <ul> zuzugreifen?

    Sic transit gloria mundi ...

    Am einfachsten würde es über CSS #meineID1 li{display:block;} gehen.

    Natürlich. Was genau hindert Dich daran?

    Doch meines Wissens kann ich per JS nur auf die ID, Class etc zugreifen, aber nicht auf Elemente mit ID einschränkungen.

    Hä? Was genau meinst Du?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|