Sören: Problem mit Tag-Hierarchie

Hi,

ich habe folgenden Code

  
for (i = 1; i <= numbers1.length; i++){  
document.write('<span class="two" style="background-image: url(img/'+numbers1[count]+'.jpg)" if="'+numbers1[count]+'" value="'+numbers1[count]+'"><img src="img/back.jpg" onClick"versuch(this)" value="'numbers1[count]+'/></span>');  
zeilebruch++  
if (zeilebruch == 4) {document.write('<br>'); zeilebruch = 0;};  
count++  
}  
  
function versuch(element) {  
element.style.visibility = "hidden"  
alert(parent.value)  
}  

Erklärung wie der Code funktionieren soll:
Es wird als erstes ein Array mit dem Namen numbers1 erstellt und mit Werten zwischen 1 und 16 gefüllt. Für jedes Element in dem Array wird dann ein eigener Span-Tag erzeugt, der die ID von der jeweiligen Zahl hat. Der Valuetext entspricht auch dem Array-Element, genauso wie der Hintergrundbildname dem Array-Element entspricht. Dann wird anschließend noch ein Bild mit dem Namen "back.jpg" erstellt, welches das hintergrundbild verdeckt. Wenn 4 Span-Tags nebeneinander liegen, dann wird ein Zeilenumbruch erzeugt.
Wenn jetzt auf eines der Hintergrundbilder geklickt wird, verschwindet das entsprechen "back.jpg"-Bild. Und es soll für eine Später überprüfung auf die ID oder das Value des entsprechenden Span-Tags zugegriffen werden.

Diesen Zugriff habe ich mit parent.value versucht, was aber nicht funktioniert. Jetzt meine Frage: wie kann ich auf den Span-Tag zugreifen, ohne die genaue ID bzw. Value zu kennen?

Gruß
Sören

  1. wie kann ich auf den Span-Tag zugreifen, ohne die genaue ID bzw. Value zu kennen?

    http://de.selfhtml.org/javascript/objekte/node.htm

    1. wie kann ich auf den Span-Tag zugreifen, ohne die genaue ID bzw. Value zu kennen?
      http://de.selfhtml.org/javascript/objekte/node.htm

      ich habe mir das mit den nodes jetzt genau durchgelesen...rausgefunden, wie ich von dem img-tag auf den span-tag zugreifen kann, habe ich immer noch nicht...

      gruß
      Sören

      1. Mahlzeit,

        wie kann ich auf den Span-Tag zugreifen, ohne die genaue ID bzw. Value zu kennen?
        http://de.selfhtml.org/javascript/objekte/node.htm

        ich habe mir das mit den nodes jetzt genau durchgelesen...

        Das bezweifle ich.

        rausgefunden, wie ich von dem img-tag auf den span-tag zugreifen kann, habe ich immer noch nicht...

        Dann hast Du wohl http://de.selfhtml.org/javascript/objekte/node.htm#previous_sibling@title=previousSibling überlesen ...

        MfG,
        EKKi

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

          wie kann ich auf den Span-Tag zugreifen, ohne die genaue ID bzw. Value zu kennen?
          http://de.selfhtml.org/javascript/objekte/node.htm

          ich habe mir das mit den nodes jetzt genau durchgelesen...

          Das bezweifle ich.

          rausgefunden, wie ich von dem img-tag auf den span-tag zugreifen kann, habe ich immer noch nicht...

          Dann hast Du wohl http://de.selfhtml.org/javascript/objekte/node.htm#previous_sibling@title=previousSibling überlesen ...

          MfG,
          EKKi

          nein hab ich nciht...wenn ich das verusch, dann wird mir gesagt, das ganze sei nicht definiert...

          also ich hab nen span tag mit ner id und nen img tag...jetzt klick ich auf das bild und ich will auf den spantag zugreifen...

          ein weiteres problem dabei ist, das mir der span-tag und der img-tag dynamisch erzeugt wird und ich vorher nicht weiß, welche id der span-tag hat oder an welcher position er steht...

          gruß
          Sören

          1. Hallo,

            ein weiteres problem dabei ist, das mir der span-tag und der img-tag dynamisch erzeugt wird und ich vorher nicht weiß, welche id der span-tag hat oder an welcher position er steht...

            wenn du diese Schachtelung <span><img onclick="versuch(this)"></span> hast, dann ist img.parentNode() und nicht wie in deinem 1.Versuch parent die richtige Wahl.

              
            function versuch(element) {  
              
              alert("element: "+element.nodeName  
                +"\nparentNode: "+element.parentNode.nodeName  
                +"\nparentNode.id: "+element.parentNode.id  
                );  
              
              element.style.visibility = "hidden";  
            }  
            
            

            Gruß plan_B

            --
                 *®*´¯`·.¸¸.·
            1. Hallo,

              ein weiteres problem dabei ist, das mir der span-tag und der img-tag dynamisch erzeugt wird und ich vorher nicht weiß, welche id der span-tag hat oder an welcher position er steht...

              wenn du diese Schachtelung <span><img onclick="versuch(this)"></span> hast, dann ist img.parentNode() und nicht wie in deinem 1.Versuch parent die richtige Wahl.

              function versuch(element) {

              alert("element: "+element.nodeName
                  +"\nparentNode: "+element.parentNode.nodeName
                  +"\nparentNode.id: "+element.parentNode.id
                  );

              element.style.visibility = "hidden";
              }

              
              >   
              > Gruß plan\_B  
                
              danke...das is genau das was ich gebraucht habe...iwie war ich zu blöd, da drauf zu kommen....vielen dank nochmal
              
  2. Hallo,

    Das ist Müll:

    document.write('<span class="two" style="background-image: url(img/'+numbers1[count]+'.jpg)" if="'+numbers1[count]+'" value="'+numbers1[count]+'"><img src="img/back.jpg" onClick"versuch(this)" value="'numbers1[count]+'/></span>');

      
    – <span> kennt kein Attribut namens "if"  
    – <span> kennt kein Attribut namens "value"  
    – <img> kennt kein Attribut namens "value"  
    - onClick"versuch(this)" ist falsch  
    – value="'numbers1[count]+'/></span>' ist falsch  
      
    Gruß, Don P  
    
    
  3. Hallo,

    for (i = 1; i <= numbers1.length; i++){
    document.write('<span class="two" style="background-image: url(img/'+numbers1[count]+'.jpg)" if="'+numbers1[count]+'" value="'+numbers1[count]+'"><img src="img/back.jpg" onClick"versuch(this)" value="'numbers1[count]+'/></span>');

      
    "i" ist durch die for-Schleife initialisiert, allerdings als globabe Variable  
    besser wäre `for (var i = 1; i <= numbers1.length; i++)`{:.language-javascript}  
    "count" ist überhaupt nicht definiert, sollte das "i" sein?  
      
    ein <span>-Element kennt kein value-Attribut, ebenso <img>,  
    du meinst wahrschienlich die id?  
      
    du möchtest doch eher sowas erzeugen  
      
    ~~~html
      
    <span id="s1" style=" ... "><img id="i1" src="..." onclick="versuch(this)"></span>  
    
    

    zu beachten ist, das die ID mit einem Buchstaben beginnen muss.

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·