Alt 27.08.2011, 07:12:52   #1 (permalink)
Erfahrener Benutzer

ID: 322821
Lose-Remote
Reallife

Reg: 24.11.2008
Beiträge: 1.372
Seth93 ist einfach richtig nettSeth93 ist einfach richtig nettSeth93 ist einfach richtig nettSeth93 ist einfach richtig nettSeth93 ist einfach richtig nett
Standard jquery - Selector

Hallo,

ich hab eine Frage über den Selector von jQuery.
Wenn ich ihn anwende um z.B. alle b-Elemente zu bekommen, erhalte ich ein Array.
Wenn ich jetzt gezielt ein b-Element ansprechen will, kann ich keine Funktionen von jQuery mehr darauf anwenden.

Beispiel:
Code:
1:
$("b")[0].html();
Gibt s da einen Trick, wie ich ein Element gezielt ansprechen kann und trotzdem noch die Funktionen anwenden kann?

Lg
Seth93 ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 27.08.2011, 07:29:26   #2 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Ja. Du musst .eq() bzw. :eq() benutzen und keinen normalen Arrayzugriff.
http://api.jquery.com/eq/
http://api.jquery.com/eq-selector/
theHacker ist offline   Mit Zitat antworten
Alt 30.08.2011, 21:06:22   #3 (permalink)
Erfahrener Benutzer

ID: 322821
Lose-Remote
Reallife

Reg: 24.11.2008
Beiträge: 1.372
Seth93 ist einfach richtig nettSeth93 ist einfach richtig nettSeth93 ist einfach richtig nettSeth93 ist einfach richtig nettSeth93 ist einfach richtig nett
Standard

Super, genau das hab ich gesucht
Gibt s n Grund warum es eq() heißt?

Wenn ich eine Seite mit jQuery per Ajax lade, dann funktionieren die ganzen Funktionen nicht mehr auf die geladenen Elemente.
Man muss vermutlich irgendwas mit eval() machen?
Aber es klappt nicht:

Code:
1:
2:
3:
4:
5:
6:
7:
8:
$("#bla").click(function(){ $.post( url, '', function( data ) { var content = $(data).find('#content'); $( "#content" ).empty().append( content ); } ); });
Der geladene Inhalt enthält einen Link mit der ID "bla", sodass man erneut raufklicken kann. Dann wird aber kein Ajax-Request mehr abgesendet.

Lg


EDIT:
Wenn ich dataType: 'script' anhänge, dann geht es zwar, aber der Seiteninhalt wird nicht mehr in den Div-Container geladen.

Geändert von Seth93 (30.08.2011 um 21:13:26 Uhr)
Seth93 ist offline Threadstarter   Mit Zitat antworten
Alt 30.08.2011, 22:39:34   #4 (permalink)
null != null
Benutzerbild von Sebmaster

ID: 238955
Lose-Remote

Sebmaster eine Nachricht über Skype™ schicken
Reg: 20.05.2006
Beiträge: 3.713
Sebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes AnsehenSebmaster genießt hohes Ansehen
Standard

Das ist deswegen so, da jQuery einmal alle Elemente deines Selectors durchgeht, und das Event anhängt.

Wenn ich mich recht erinnere, dürfte live() genau das sein, wonach du suchst.
Kein Grafiker
Sebmaster ist offline   Mit Zitat antworten
Alt 31.08.2011, 06:19:45   #5 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Zitat:
Zitat von Seth93 Beitrag anzeigen
Gibt s n Grund warum es eq() heißt?
Ja. Weil du damit das Element "im Array selektierst, dessen Index gleich 0 ist".
Es gibt auch gt() und lt(), um z.B. nur die ersten 4 Zellen einer Tabellenzeile zu selektieren oder jeden Absatz nach dem 5. Absatz rot zu färben.

Zitat:
Zitat von Seth93 Beitrag anzeigen
Wenn ich eine Seite mit jQuery per Ajax lade, dann funktionieren die ganzen Funktionen nicht mehr auf die geladenen Elemente.
s. Post über mir oder EventHandler von Hand nochmal neu registrieren für die Elemente, die hinzugekommen sind.

Was mir auffällt: Du hängst einen Teil des DOM-Trees aus der AJAX-Response direkt in den DOM-Tree der aktuellen Seite. Afair meckert der IE da. Hast du es im IE getestet?
Wenn du mit dem Probleme kriegst, probier mal
Code:
1:
$("#content").empty().append(content.html());
theHacker ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
jquery mini und 1.4.2 jquery.min.js - beißen sich resoucer Scripts & Software 3 04.02.2011 17:04:27
[JavaScript] jQuery Frage resoucer Programmierung 7 17.11.2010 22:06:20
[JavaScript] Jquery Probleme im IE Gremlin Programmierung 1 15.06.2010 23:32:19
[JavaScript] jQuery wo lernen Tab Programmierung 4 11.02.2010 15:12:14
[JQuery] Frage Goltergaul Programmierung 7 27.01.2008 10:56:26


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50:13 Uhr.