jquery next selektor frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jquery next selektor frage

    hi, habe mal ne kleine Verständnis Frage zu Selekoren bei next:

    habe in einer Bildergallery folgende Struktur:

    PHP-Code:
    <div class="edit_container">
     <
    div class="del_container">delete</div>
     <
    img class="xyz" src="http://localhost/foo/lib/imgs/gallery/f1/043.jpg" alt="" />
    </
    div
    an jedes Div der klasse del_container soll bei click eine funktion gebunden werden:
    PHP-Code:
    $('.edit_container .del_container').each(
      function(
    i){
       $( 
    this ).bind (
         
    "click",
            function(){ 
             var 
    src = $(this).next('img').attr('src');
             var 
    foo = $(this).next('img').attr('class');
             
    alert(foo);    // zur kontrolle
             /* der rest ...... *
           }
         );
      }
    ); 
    das funktioniert wunderbar.
    Jetzt brauche ich um das Image noch einen div Container
    PHP-Code:
    <div class="edit_container">
     <
    div class="del_container">delete</div>
     <
    div class="clip">
      <
    img class="xyz" src="http://localhost/foo/lib/imgs/gallery/f1/043.jpg" alt="" />
     </
    div>
    </
    div
    dann müsste ich doch um an den Img Tag referenzieren zu können folgenden Selektor verwenden:
    PHP-Code:
    var src = $(this).next('div > img').attr('src'); 
    alert(src); gibt mir dann aber ein undefined zurück
    Laut Doku Child Selector (“parent > child”) – jQuery API & .next() – jQuery API
    müsste dass doch aber richtig sein ?!?


    PHP-Code:
    var src = $(this).next().next().attr('src'); 
    geht auch nicht!

    Wo liegt mein Fehler bzw. kann mir einer mal das Brett vom Kopf entfernen?
    THX
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    Hallo,

    während dein Dokument jetzt weiter in die Tiefe geht, bleibst du flach auf der aktuellen Ebene. Versuch's mal mit
    Code:
    .next("div").children("img")
    Nochmal zu deinem Selektor „div > img“. Der matcht nur img-Geschwister (die es in der aktuellen Ebene nicht gibt), deren Elternelement ein div ist. Dieser Selektor hätte in der ersten Version gepasst, als noch kein Container um das img drum herum war, da das Elternelement div.edit_container die Bedingung erfüllt hätte. CSS-Selektoren (und damit auch die von jQuery) gehen nie wie z. B. XPath selbst in die Tiefe, das musst du mit den Funktionen (next, children, ...) machen. Die Selektoren legen nur Bedingungen fest.

    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 28.06.2011, 12:55.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      THX freundin der Nacht
      so gehts

      aber
      div > img

      da warste schneller als ich danke für die ausführliche antwort!

      bedeutet doch auch "ein img innerhalb eines div" bzw. 2ein img als child-node eines div"
      oder habe ich da was falsch verstanden?
      "I don't want to belong to any club that would accept me as a member."

      Groucho Marx

      Kommentar

      Lädt...
      X