JS: Kind Element bekommen

Die Lage ist folgende:

Ich hab nen code mit

<div id=parent_0>
 <div id=div_0>
  <div id=child_0>

Mit document.getElementbyId bekomm ich nur bei parent [object]

würde aber gern des child haben. Wie komm ich da ran?

  1. würde aber gern des child haben. Wie komm ich da ran?

    document.getElementById('child_0') ?!

    ggf stören dich auch die umbrüche - während ordentliche browser einen whitespace als textknoten ausspucken (wenn du zb mit childNodes arbeitest) ignoriert der internet explorer diese

    <div id="foo"><div id="bar" /></div>

      
    document.getElementById('foo').childNodes[0]
    

    das führt in jedem browser zum selben ergebnis (referenz auf "bar")

    <div id="foo">  
      <div id="bar" />  
    </div>
    
      
    document.getElementById('foo').childNodes[0]
    

    das hier wird zb in firefox oder opera einen textknoten referenzen, im ie dennoch das element mit der id "bar"

    1. wow danke(!!), das ist der richtige Weg!

      Nur er gibt "undefined" aus, statt was sinnvollem..

      1. Nur er gibt "undefined" aus, statt was sinnvollem..

        wenn du was genau machst?

        1. wenn du was genau machst?

          alert(document.getElementById('parent_0').childNode[0]);

          Hab grad auch mir firstChild probiert, das klappt auch nicht.

          1. wenn du was genau machst?
            alert(document.getElementById('parent_0').childNode[0]);

            Wieso greifst du nicht direkt auf child_0 zu?

            Struppi.

            1. Wieso greifst du nicht direkt auf child_0 zu?

              Hab ich versucht und dann kommt [null].

              1. Hallo,

                Hab ich versucht und dann kommt [null].

                aber nicht bei document.getElementById('child_0');
                sowas kann nicht sein.

                MfG. Christoph Ludwig

                --
                Wo die Sprache aufhört, fängt die Musik an...
                Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                Go to this
                1. Hab ich versucht und dann kommt [null].
                  aber nicht bei document.getElementById('child_0');
                  sowas kann nicht sein.

                  richtig, firefox sollte hier zb "[object HTMLDivElement]" liefern

                  1. Hallo,

                    richtig, firefox sollte hier zb "[object HTMLDivElement]" liefern

                    genau ... und mir ist immer noch nicht klar wieso er das nicht gleich so macht sondern umständlich mit childNodes ... kA :D

                    MfG. Christoph Ludwig

                    --
                    Wo die Sprache aufhört, fängt die Musik an...
                    Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                    Go to this
                    1. genau ... und mir ist immer noch nicht klar wieso er das nicht gleich so macht sondern umständlich mit childNodes ... kA :D

                      ich nahm an die beispielstruktur stand für sowas

                      <div id="foo">
                       <div>
                        <div>

                      die beiden inneren haben keine id, nur das äussere element

                      aber wenn alle ids haben - wurde wohl zu viel mit ids herumgeworfen :)

                      1. Hallo,

                        ich nahm an die beispielstruktur stand für sowas

                        <div id="foo">
                        <div>
                          <div>

                        die beiden inneren haben keine id, nur das äussere element

                        das kann natürlich sein ...
                        trotzdem würde ich id's bevorzugen :)

                        aber wenn alle ids haben - wurde wohl zu viel mit ids herumgeworfen :)

                        hauptsache, es wird keiner getroffen :D

                        MfG. Christoph Ludwig

                        --
                        Wo die Sprache aufhört, fängt die Musik an...
                        Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                        Go to this
                        1. trotzdem würde ich id's bevorzugen :)

                          warum? bei sinnvollem code reicht es, wenn die gruppierenden elemente ids besitzen - alles andere ist doch ohnein (meistens) über die struktur des dokumentes anwählbar

                          <div id="header">  
                           <div id="headline">blah  
                            <div id="logo"><a href="#" /></div>  
                           </div>  
                           irgendwelches zeug  
                          </div>
                          

                          oder

                          <div id="header">  
                           <h1>  
                            <a href="#">blah</a>  
                           </h1>  
                           irgendwelches zeug  
                          </div>
                          

                          imho reicht das zweitere völlig aus

                          hauptsache, es wird keiner getroffen :D

                          stand ja da: [null] treffer :p

                          1. Hallo,

                            <div id="header">

                            <div id="headline">blah
                              <div id="logo"><a href="#" /></div>
                            </div>
                            irgendwelches zeug
                            </div>

                            
                            >   
                            > oder  
                            >   
                            > ~~~html
                            
                            <div id="header">  
                            
                            >  <h1>  
                            >   <a href="#">blah</a>  
                            >  </h1>  
                            >  irgendwelches zeug  
                            > </div>
                            
                            

                            imho reicht das zweitere völlig aus

                            na das meinte ich doch nicht soo ...
                            warum sollte ich auch in dem ersten beispiel alles in div's packen? .. ist doch sinnlos ...
                            das zweite reicht hier deswegen völlig aus.

                            hauptsache, es wird keiner getroffen :D
                            stand ja da: [null] treffer :p

                            schlechter schütze :D

                            MfG. Christoph Ludwig

                            --
                            Wo die Sprache aufhört, fängt die Musik an...
                            Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                            Go to this
                            1. Ich weis jetzt woran es liegt,
                              ich hab "document.getElementById('child_0')" in onunload von body gebracht, da wirds gefunden.
                              D.h. das Div ist nochgarnicht erstellt wenn ichs abfrage..

                              Danke @ all und bye

                              1. D.h. das Div ist nochgarnicht erstellt wenn ichs abfrage..

                                Dann reicht es völlig das JS im Quelltext hinter dem DIV zu platzieren.

                                Struppi.

                                1. Dann reicht es völlig das JS im Quelltext hinter dem DIV zu platzieren.

                                  Ja, schon klar, bin nur grad am suchen wanns denn erstellt ist. Das isn riesen Sch***.

                                  1. Dann reicht es völlig das JS im Quelltext hinter dem DIV zu platzieren.

                                    Ja, schon klar, bin nur grad am suchen wanns denn erstellt ist. Das isn riesen Sch***.

                                    Du kannst das Skript auch vor dem schliessenden body-Tag ausführen, dann sparst du dir das suchen.

                                    Struppi.

                                    1. Ich bekomm bei "document.getElementById('child_0')" [object] jipiii!!

                                      1. Mahlzeit JS,

                                        Ich bekomm bei "document.getElementById('child_0')" [object] jipiii!!

                                        Kaum macht man's richtig, funktioniert's ... immer wieder erstaunlich.

                                        MfG,
                                        EKKi

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

                          Danke an alle!

                      2. genau ... und mir ist immer noch nicht klar wieso er das nicht gleich so macht sondern umständlich mit childNodes ... kA :D

                        ich nahm an die beispielstruktur stand für sowas

                        <div id="foo">
                        <div>
                          <div>

                        die beiden inneren haben keine id, nur das äussere element

                        Dann bietet sich z.b. folgendes an:
                        var div = document.getElementById('foo').getElementsByTagName('div')[0];

                        Struppi.

              2. Hab ich versucht und dann kommt [null].

                so gings mir auch mit meiner Nachfrage nach mehr relevantem Code, damit deine Probleme überhaupt nachvollziehbar sind

                1. so gings mir auch mit meiner Nachfrage nach mehr relevantem Code, damit deine Probleme überhaupt nachvollziehbar sind

                  <body>
                  <div>
                  <script type="text/javascript" src="../syndication/subscriber/Insert.js">
                  </script>

                  <script>
                  if (BOX) BOX.renderBox('9dafd273-2d9e-44ec-a97c-bb6c46e1c1ad');
                  alert(document.getElementById('parent_0').childNodes[0]);
                  </script>
                  </div>
                  </body>

                  1. ich sehe keine element mit der id "parent_0" - das kann nicht funktionieren

                    1. ich sehe keine element mit der id "parent_0" - das kann nicht funktionieren

                      Das wird erstellt beim if

                      1. Das wird erstellt beim if

                        das kann ich weder sehen, noch riechen, noch schmecken

                        wie schon erwähnt: erstelle ein funktionierendes, valudes, nachvollziehbares (online-)beispiel

                        sowas zb:

                        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                               "http://www.w3.org/TR/html4/loose.dtd">
                        <html>
                         <head>
                          <title>foo</title>
                         </head>
                         <body>
                           <div id="foo"><div id="bar">sample2</div></div>
                          <script type="text/javascript">
                           alert('1: ' + document.getElementById('foo'));
                           alert('2: ' + document.getElementById('bar'));
                          </script>
                         </body>
                        </html>

                  2. Hallo,

                    <body>
                    <div>
                    <script type="text/javascript" src="../syndication/subscriber/Insert.js">
                    </script>

                    <script>
                    if (BOX) BOX.renderBox('9dafd273-2d9e-44ec-a97c-bb6c46e1c1ad');
                    alert(document.getElementById('parent_0').childNodes[0]);
                    </script>
                    </div>
                    </body>

                    irgendwo auf diesem webspace sollten ein paar sätze rumschwirren, das eine AUSFÜHRLICHE problembeschreibung mit einem GUTEN beispiel definitiv schneller ans ziel führt als sowas ...
                    was soll ich mit dem ding dort?

                    MfG. Christoph Ludwig

                    --
                    Wo die Sprache aufhört, fängt die Musik an...
                    Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                    Go to this
                    1. irgendwo auf diesem webspace sollten ein paar sätze rumschwirren, das eine AUSFÜHRLICHE problembeschreibung mit einem GUTEN beispiel definitiv schneller ans ziel führt als sowas ...
                      was soll ich mit dem ding dort?

                      Naja, das ist alles was ich habe, nur ich muss auf das child_0 zugreifen können..und das ist mein Problem.

                      1. Naja, das ist alles was ich habe, nur ich muss auf das child_0 zugreifen können..und das ist mein Problem.

                        Nein das ist nicht dein Problem, dein Problem ist das du uns nicht sagen willst was du wirklich machst.

                        Struppi.

                      2. Mahlzeit JS,

                        Naja, das ist alles was ich habe, nur ich muss auf das child_0 zugreifen können..und das ist mein Problem.

                        Wieso ist das ein Problem? Wieso versuchst Du es nicht direkt über "document.getElementById('child_0');"?

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                        1. Wieso ist das ein Problem? Wieso versuchst Du es nicht direkt über "document.getElementById('child_0');"?

                          das funzt ja nicht
                          SCRN[1]

                          [1] yoda-style

                          1. Mahlzeit suit,

                            Wieso ist das ein Problem? Wieso versuchst Du es nicht direkt über "document.getElementById('child_0');"?

                            das funzt ja nicht

                            Und warum nicht? Darüber hat sich JS bisher noch nicht ausgelassen ... oder habe ich irgendwas überlesen?

                            MfG,
                            EKKi

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

                              das weiss ich auch nicht - mein beispiel "funzt" jedenfalls

                              Darüber hat sich JS bisher noch nicht ausgelassen ... oder habe ich irgendwas überlesen?

                              nein, überlesen hast du nichts - es funzt aber trotzdem nicht :)

          2. alert(document.getElementById('parent_0').childNode[0]);

            das glaub ich, schließlich heissts ja auch http://de.selfhtml.org/javascript/objekte/node.htm#child_nodes@title=childNodes

            Hab grad auch mir firstChild probiert, das klappt auch nicht.

            glaub ich nicht

            unabhängig davon schließe ich mit struppis einwand an

            1. unabhängig davon schließe ich mit struppis einwand an

              Das war ja mein Anfangs Problem, dass es direkt nicht klappt..

              1. Das war ja mein Anfangs Problem, dass es direkt nicht klappt..

                wir drehen uns im kreis: poste ein nachvollziehbares, "funktionerendes" beispiel (am besten online, mit link, valide und fehlerfrei) - unter "laborbedingungen" ist das von dir beschriebene verhalten nicht nachvollziehbar

              2. Mahlzeit JS,

                unabhängig davon schließe ich mit struppis einwand an

                Das war ja mein Anfangs Problem, dass es direkt nicht klappt..

                "Klappt nicht" klappt nicht! Was genau funktioniert denn nicht beim direkten Zugriff über "document.getElementById('child_0');"?

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          3. alert(document.getElementById('parent_0').childNode[0]);

            Nachtrag:
            lert(document.getElementById('parent_0').childNodes[0]);

            Natürlich mit s!

  2. Mahlzeit JS,

    Mit document.getElementbyId bekomm ich nur bei parent [object]

    Was übergibst Du der Methode als Parameter? Wäre mir neu, wenn es auch ohne ginge ...

    würde aber gern des child haben. Wie komm ich da ran?

    Über http://de.selfhtml.org/javascript/objekte/node.htm#first_child@title=entsprechende http://de.selfhtml.org/javascript/objekte/node.htm#next_sibling@title=Methoden?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Mit document.getElementbyId bekomm ich nur bei parent [object]

    das ist so nicht nachvollziehbar. Poste bitet etwas ausführlicher.