Matthias: Jquery: Untergeordnete Klasse selektieren

Hallo,

ich habe eine News-Seite die sich aus mehreren Beiträgen zusammensetzt. Das Format sieht so aus:

<div class="newsEntry">  
	<div class="newsHeader">  
		<div class="date">  
			Datum  
		</div>  
		<div class="ueberschrift">  
			Ueberschrift  
		</div>  
	</div>		  
	<div class="newsContent">  
		News-Beitrag  
		<input class="newsId" type="hidden" name="newsId" value="News-Id aus der Datenbak"/>  
	</div>	  
</div>

Sobald auf den Beitrag geklickt wird, soll dieser sich in ein Input-Feld wandeln um den Eintrag bearbeiten zu können. Dieses setze ich mit folgender Jquery-Funktion um:

  
$(".newsContent").live('click', function() {  
	var content = $(this).html();  
	$(this).replaceWith("<input class='newsInput' type='text' style='width: 95%; height: 100px;' value='"+content+"'/>");			  
});

Jetzt brauche ich allerdings noch die News-Id, welche in dem Hidden-Feld steckt, um den Eintrag in der Datenbank ändern zu können.

Schön wäre es wenn man die untergeordnete Klasse "newsId" in Abhängigkeit von dem angeklickten "newsContent" selektieren könnte. Habe schon diverses probiert und komme nicht weiter. Ideal wäre eine Selektion wie z.B. $(this + untergordnete Klasse).

Vlt kann einer helfen.

Gruss
Matthias

  1. Hi,

    Ideal wäre eine Selektion wie z.B. $(this + untergordnete Klasse).

    neben dem Selektor kann der $() ein zweiter Parameter übergeben werden, welcher den Kontext spezifiziert, innerhalb dessen die Selektion stattfinden soll.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. @@Cheatah:

      nuqneH

      neben dem Selektor kann der $() ein zweiter Parameter übergeben werden, welcher den Kontext spezifiziert, innerhalb dessen die Selektion stattfinden soll.

      Oder find() verwenden, s. [molily].

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. @@Cheatah:

        nuqneH

        neben dem Selektor kann der $() ein zweiter Parameter übergeben werden, welcher den Kontext spezifiziert, innerhalb dessen die Selektion stattfinden soll.

        Oder find() verwenden, s. [molily].

        Qapla'

        Vielen Dank für die Infos. Werde es morgen mal testen.

        Gruss

        1. Vielen Dank für die Infos. Werde es morgen mal testen.

          Gruss

          Postest Du denn mal Deine Lösung?
          Ich lese hier gespannt mit.

          Im Gegenzug poste ich Dir eine interessante andere Lösung zum Thema Editable Spans, ok?

          Gruß, Arno

          1. Oder find() verwenden, s. [molily].

            Qapla'

            Mit find() funktioniert es wunderbar. Vielen Dank nochmal.

            Postest Du denn mal Deine Lösung?
            Ich lese hier gespannt mit.

            Im Gegenzug poste ich Dir eine interessante andere Lösung zum Thema Editable Spans, ok?

            Gruß, Arno

              
            var newsContent;  
            var newsId;  
            $(document).ready(function() {  
            	$(".newsContent").live('click', function() {  
            		if( !$('.newsContent').find('textarea').text() ) {	<!-- Sicherstellen dass nur ein Beitrag bearbeitet wird -->			  
            			if( content = $(this).find('span').text() ) {			  
            				newsId = $(this).find('.newsId').val();								  
            				newsContent = content;				  
            				$(this).find('span').replaceWith("<textarea class='newsInput' rows='6' cols='100'>"+content+"</textarea>");				  
            			}  
            		}						  
            	});  
            	$(".newsInput").live('blur', function() {  
            		var content = $(this).val();			  
            		$(this).replaceWith("<span>"+content+"</span>");			  
            		if(newsContent != content) {				  
            			$.ajax({  
            				type: "POST",  
            				url: "includes/news.php",  
            				data: "newsContent="+content+"&newsId="+newsId,  
            				success: function(rueckgabe) {	  
            					if(rueckgabe != 'true') {  
            						alert('Es ist ein Fehler aufgetreten.')  
            					}  
            				}  
            			});  
            		}  
            	});  
            });
            

            Das wäre meine Lösung der Aufgabenstellung.

            Gruss

            1. Hallo,

                if( !$('.newsContent').find('textarea').text() ) {	<!-- Sicherstellen dass nur ein Beitrag bearbeitet wird -->  
              

              diese Zeile wirft einen Javascript-Syntaxfehler, der die Verarbeitung des Scripts komplett abbrechen dürfte. HTML-Kommentare haben in Javascript-Code nichts zu suchen.

                		success: function(rueckgabe) {  
                			if(rueckgabe != 'true') {  
                				alert('Es ist ein Fehler aufgetreten.')  
                			}  
              

              Das sieht sehr eigenartig aus.
              Ich bin im Umgang mit dem XHR-Objekt bzw. dessen Jquery-Äquivalent ajax() nicht so firm, aber die Deklaration einer Funktion mit einem Parameter namens rueckgabe, der *in die Funktion hinein* übergeben wird, kommt mir verdächtig vor.
              Zweitens ist es vermutlich falsch, mit einem String zu vergleichen; vermutlich meinst du die boolsche Konstante true.
              Und drittens ist es -vorausgesetzt, ich liegen mit Punkt zwei richtig- Unfug, einen boolschen Wert, der nur true oder false sein kann, nochmal explizit mit dem Wert true zu vergleichen, um dann true oder false herauszubekommen.

              So long,
               Martin

              --
              Der Sinn einer Behörde besteht in ihrer Existenz.
                (alte Beamtenweisheit)
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Hallo,

                  if( !$('.newsContent').find('textarea').text() ) {	<!-- Sicherstellen dass nur ein Beitrag bearbeitet wird -->  
                

                diese Zeile wirft einen Javascript-Syntaxfehler, der die Verarbeitung des Scripts komplett abbrechen dürfte. HTML-Kommentare haben in Javascript-Code nichts zu suchen.

                Es wird kein Fehler geworfen. Habe es Live getestet. Die if-Abfrage soll bewirken wenn kein textarea-Feld gefunden wird, also die Rückgabe NULL ist, soll die Funktion ausgeführt werden.

                Zweitens ist es vermutlich falsch, mit einem String zu vergleichen; vermutlich meinst du die boolsche Konstante true.

                Die Rückgabe des PHP-Skriptes an die Javascript-Funktion ist in dem Fall ein String. Das alert() sollte nur eine Demonstration sein um nicht den ganzen Code hier zu posten.
                In dem Fall wird der alte Inhalt wieder in den Span-Bereich geschrieben.

                Gruss
                Matthias

                1. @@Matthias:

                  nuqneH

                  Es wird kein Fehler geworfen.

                  Mag sein.

                  Dennoch solltest du in JavaScript keine HTML-Kommentare verwenden, sondern http://de.selfhtml.org/javascript/sprache/regeln.htm#kommentare@title=JavaScript-Kommentare.

                  Qapla'

                  --
                  Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                  (Mark Twain)
                  1. Dennoch solltest du in JavaScript keine HTML-Kommentare verwenden, sondern http://de.selfhtml.org/javascript/sprache/regeln.htm#kommentare@title=JavaScript-Kommentare.

                    Qapla'

                    Danke für die Info, hab den Kommentar geändert.

                    Gruss

              2.   		success: function(rueckgabe) {  
                  			if(rueckgabe != 'true') {  
                  				alert('Es ist ein Fehler aufgetreten.')  
                  			}  
                

                Das sieht sehr eigenartig aus.
                Ich bin im Umgang mit dem XHR-Objekt bzw. dessen Jquery-Äquivalent ajax() nicht so firm, aber die Deklaration einer Funktion mit einem Parameter namens rueckgabe, der *in die Funktion hinein* übergeben wird, kommt mir verdächtig vor.
                Zweitens ist es vermutlich falsch, mit einem String zu vergleichen; vermutlich meinst du die boolsche Konstante true.
                Und drittens ist es -vorausgesetzt, ich liegen mit Punkt zwei richtig- Unfug, einen boolschen Wert, der nur true oder false sein kann, nochmal explizit mit dem Wert true zu vergleichen, um dann true oder false herauszubekommen.

                Man kann nur den Kopf schütteln, was für eine Kompetenz hier im Forum versammelt ist. Anstatt sich mal selbst in die Materie hineinzufuchsen (XMLHttpRequest, »Ajax«, jQuery), sich gesichertes Wissen anzueignen und Dinge kurzerhand auszuprobieren, werden Vermutungen und Unverständnis verbreitet. Mit dieser fatalen Mischung kann man wunderbar Besserwissen und Herumkritteln.

                Wie wäre es z.B. mit Nachschlagen in der jQuery-Dokumentation zu $.ajax()? http://api.jquery.com/jQuery.ajax/
                »success(data, textStatus, XMLHttpRequest)  Function
                A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the 'dataType' parameter; a string describing the status; and the XMLHttpRequest object«
                Von welchem Typ der erste Parameter ist, hängt vom MIME-Typ der Serverantwort ab, üblicherweist ist es ein HTML- oder Plain-Text-String. JSON ginge auch. Siehe Data Types ebenda.

                Übrigens ist if (wert) und if (wert == true) tatsächlich etwas anderes in ECMAScript, wenn wert nicht vom Typ Boolean ist. (Andernfalls ist es zwar unnötiger Code, aber nicht schädlich.) Zur Erklärung: if (wert) führt ToBoolean(wert) aus, während wert == true den »Abstract Equality Comparison Algorithm« startet. Dieser wandelt (zusammengefasst) beide Werte in Number um.
                if ("true") ergbt true, denn Boolean("true") ergibt true, weil jeder nicht-leere String true ergibt.
                if ("true" == true) ergibt false, denn Number("true") ergibt NaN, Number(true) ergibt 0, und NaN == 0 ergibt false.
                Insofern wäre es tatsächlich nicht zielführend, einen Boolean mit dem String "true" zu vergleichen. Da käme nämlich in beiden Fällen false heraus (bei der negativen Variante mit != entsprechend immer true).

                Noch ein unverzichtbarer Link für sämtliche JavaScript-Erklärungen:
                ECMA-262 5th Edition in HTML Format

                Mathias

                1. Moin,

                  success: function(rueckgabe) {
                  if(rueckgabe != 'true') {
                  alert('Es ist ein Fehler aufgetreten.')
                  }

                  Das sieht sehr eigenartig aus.
                  Ich bin im Umgang mit dem XHR-Objekt bzw. dessen Jquery-Äquivalent ajax() nicht so firm, aber die Deklaration einer Funktion mit einem Parameter namens rueckgabe, der *in die Funktion hinein* übergeben wird, kommt mir verdächtig vor.

                  Man kann nur den Kopf schütteln, was für eine Kompetenz hier im Forum versammelt ist.

                  na, sie wird ja durch die Arroganz anderer Teilnehmer prima ergänzt. Womit ich ausdrücklich nicht deine Kompetenz in Frage stellen möchte, sondern nur deine Art zu kommunizieren.

                  Anstatt sich mal selbst in die Materie hineinzufuchsen (XMLHttpRequest, »Ajax«, jQuery)

                  Da ich selbst jquery (und andere JS-Frameworks) ablehne, werde ich mich da garantiert nicht "hineinfuchsen".
                  Aber das ist ja auch gar nicht der Punkt. Der Punkt ist, dass der OP hier ein Funktionsargument "rueckgabe" nennt - und das ist im Kontext dieser Funktion einfach irreführend, weil es kein Rückgabe- sondern ein Eingabewert der Funktion ist.

                  Und drittens ist es -vorausgesetzt, ich liegen mit Punkt zwei richtig- Unfug, einen boolschen Wert, der nur true oder false sein kann, nochmal explizit mit dem Wert true zu vergleichen, um dann true oder false herauszubekommen.
                  Übrigens ist if (wert) und if (wert == true) tatsächlich etwas anderes in ECMAScript, wenn wert nicht vom Typ Boolean ist.

                  Einen nicht-boolschen Wert explizit mit true zu vergleichen, wäre ja auch grober Unfug.

                  (Andernfalls ist es zwar unnötiger Code, aber nicht schädlich.)

                  Hmm, "schädlich"? Ja, es schadet geringfügig der Lesbarkeit und Verständlichkeit. Ansonsten ist es einfach nur eine unnötige Vergleichsoperation.

                  if ("true" == true) ergibt false, denn Number("true") ergibt NaN, Number(true) ergibt 0, und NaN == 0 ergibt false.

                  Knapp daneben - true wird zu 1 evaluiert, nicht zu 0. Das ändert hier aber am Ergebnis nichts.

                  Ciao,
                   Martin

                  --
                  "So schnell waren wir noch nie am Unfallort", sagte der Polizist zu seinem Kollegen, als er einen Laternenmast gerammt hatte.
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  1. na, sie wird ja durch die Arroganz anderer Teilnehmer prima ergänzt. Womit ich ausdrücklich nicht deine Kompetenz in Frage stellen möchte, sondern nur deine Art zu kommunizieren.

                    Ach sieh an: Wenns mal einen "der Euren" trifft, wird plötzlich die Haut sehr viel dünner.

                    Sollte wirklich häufiger passieren. Sowas fördert die Empathie.

                    Frido

                  2. Da ich selbst jquery (und andere JS-Frameworks) ablehne, werde ich mich da garantiert nicht "hineinfuchsen".

                    Vielleicht solltest du dann keine Quatschkommentare zu jQuery-Themen abgeben.

                    Borniertheit ist das, was diesem Forum noch geblieben ist.

                    Mathias

                    1. Hi,

                      Da ich selbst jquery (und andere JS-Frameworks) ablehne, werde ich mich da garantiert nicht "hineinfuchsen".
                      Vielleicht solltest du dann keine Quatschkommentare zu jQuery-Themen abgeben.

                      hab ich auch nie getan - ich habe über jQuery gesagt, dass ich mich damit nicht auskenne (und erst im zweiten Posting, dass ich es auch nicht will). Sonst nichts.
                      Den Quatschkommentar hast du also selbst hineininterpretiert.

                      Völlig unabhängig von jQuery habe ich kritisiert, dass es der Semantik widerspricht, einen Eingabeparameter "rückgabe" zu nennen.

                      Borniertheit ist das, was diesem Forum noch geblieben ist.

                      Hast du einen Spiegel zur Hand? Schau mal hinein.

                      Ciao,
                       Martin

                      --
                      Lache, und die Welt wird mit dir lachen.
                      Schnarche, und du schläfst allein.
                      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                      1. Borniertheit ist das, was diesem Forum noch geblieben ist.
                        Hast du einen Spiegel zur Hand? Schau mal hinein.

                        Dem kann ich als "regelmäßig unregelmäßigen" Konsumenten dieses Forums nicht folgen. Ganz im Gegenteil zur überwiegenden Mehrzahl der Stammposter hier fundiert Molily seine Postings meist bewundernswert grundlegend und gleichsam schlüssig.

                        Dem entgegen stehen die vorgenannten Stammposter, die mit austauschbaren Phrasen zwar oft wahre, aber meist wenig hilfreiche Selbstbeweihräucherung betreiben.

                        Soviel von jemand, der sich mittlerweile bewusst auf die Lektüre dieses Forums beschränkt...

                        1. Hallo,

                          Borniertheit ist das, was diesem Forum noch geblieben ist.
                          Hast du einen Spiegel zur Hand? Schau mal hinein.
                          Dem kann ich als "regelmäßig unregelmäßigen" Konsumenten dieses Forums nicht folgen. Ganz im Gegenteil zur überwiegenden Mehrzahl der Stammposter hier fundiert Molily seine Postings meist bewundernswert grundlegend und gleichsam schlüssig.

                          ja, das tut er, und ich habe ja auch ausdrücklich nicht seine fachliche Kompetenz kritisiert.

                          Aber er scheint aus meinen Postings gern etwas herauszulesen, was nicht drinsteht, unterstellt mir dann Aussagen, die ich nie gemacht habe (nicht einmal gedacht), und geht dann angesichts dieser imaginären Aussagen hoch wie das sprichwörtliche HB-Männchen. Manchmal erkenne ich erst nach ein- oder zweimaliger Rückfrage, worüber er sich eigentlich so ereifert.

                          Dem entgegen stehen die vorgenannten Stammposter, die mit austauschbaren Phrasen zwar oft wahre, aber meist wenig hilfreiche Selbstbeweihräucherung betreiben.

                          Ich sehe nur wenige, bei denen mir den Begriff "Selbstbeweihräucherung" in den Sinn käme, und die meisten von denen haben sich in den letzten Jahren hier ziemlich rar gemacht. Meist sind die Antworten durchaus nett und ernst gemeint, aber eben manchmal etwas herablassend geäußert.

                          Ciao,
                           Martin

                          --
                          Alle Tage sind gleich lang. Aber unterschiedlich breit.
                          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                          1. Aber er scheint aus meinen Postings gern etwas herauszulesen, was nicht drinsteht

                            Achja?

                            Dein Posting offenbarte ein Unwissen der Funktionsweise von XMLHttpRequest im Allgemeinen und Ajax mit jQuery im Besonderen. Das streitest du gar nicht ab, sondern schickst es deinem Posting sogar voraus. Da dir der Kontext des JavaScript-Codes nicht einleuchtete, kamst du offenbar nicht darauf, wieso Matthias (der OP) die Server-Rückgabe »rückgabe« genannt hat (richtig, das ist mehrdeutig und nicht optimal - aber auch nicht völlig abwegig). Anstatt sich dieses Wissen einfach kurzerhand SELF anzueignen, um zumindest den Sachverhalt und den Code des OP zu verstehen, kamen weitesgehend unpassende Ratschläge gegeben, die eine Mischung aus »ich habe keine Ahnung« und »vermutlich« waren.

                            Was ich herausgelesen habe:
                            »Das sieht sehr eigenartig aus«
                            »kommt mir verdächtig vor«
                            »vermutlich falsch«
                            »Unfug«

                            Nun treffen diese Vermutungen nicht zu und der rein formale Einwand gegen den Variablennamen »rückgabe« stimmt zwar, ist in diesem Kontext aber mehr eine Stilfrage. Dafür hast du ziemlich viel Wind gemacht.

                            Weißt du, diese Defizite sind überhaupt kein Problem an sich. Ich habe noch nie jemand wegen Unwissen angegangen; im Gegenteil helfe ich jedem dabei, sich gesichertes Wissen anzueignen. Was mich hingegen auf die Palme bringt, ist diese Haltung: 1. keine Ahnung haben, 2. offen dazu zu stehen, ohne das als ein lösbares Problem zu sehen, 3. in einem Fachforum unangebrachte Ratschläge und mangelnde Erklärungen geben sowie bloße Vermutungen äußern, 4. sich weigern, sich weiter- und fortzubilden, selbst wenn es Möglichkeiten zuhauf gibt, 5. das Ganze im Kontext von »SELF«, wo jedem um die Ohren gehauen wird, er möge sich erst einmal selbstständig informieren und Problemlösungen erarbeiten. -- Fast immer, wenn ich in diese Forum sehe, sehe ich diese Haltung.

                            Das ist nicht auf dich gemünzt, sondern genauso auf mein anderes Posting - wo mir auch nicht klar ist, warum Stammposter einer Sache nicht einfach selbst auf den Grund gehen.

                            Mathias

                            1. Hallo,

                              Dein Posting offenbarte ein Unwissen der Funktionsweise von XMLHttpRequest im Allgemeinen und Ajax mit jQuery im Besonderen. Das streitest du gar nicht ab, sondern schickst es deinem Posting sogar voraus.

                              ja, natürlich. Es wäre gemein, wenn ich das nicht täte.

                              1. keine Ahnung haben

                              Ist keine Schande, solange es sich nur auf bestimmte Bereiche erstreckt.

                              1. offen dazu zu stehen, ohne das als ein lösbares Problem zu sehen

                              Findest du kritikwürdig? Ich nicht, im Gegenteil. Ich stehe zu meinen Wissenslücken.

                              1. in einem Fachforum unangebrachte Ratschläge und mangelnde Erklärungen geben sowie bloße Vermutungen äußern

                              Ich fände es eher bedenklich, wenn ich *nicht* dazusagen würde, dass es sich um Vermutungen handelt und stattdessen den Eindruck erwecken würde, ich sei mir sicher.

                              1. sich weigern, sich weiter- und fortzubilden, selbst wenn es Möglichkeiten zuhauf gibt

                              Völlig normal. Willst du alles wissen? - Ich nicht. Es gibt kleine und auch größere Themenbereiche, die mich einfach nicht interessieren.

                              1. das Ganze im Kontext von »SELF«, wo jedem um die Ohren gehauen wird, er möge sich erst einmal selbstständig informieren und Problemlösungen erarbeiten.

                              Ja, das heißt aber nicht, dass es verwerflich ist, wenn ich Anregungen gebe - auch wenn diese Anregungen nicht gesichertem Wissen, sondern nur logischer Überlegung entspringen. Die können natürlich nicht zielführend sein, wenn bereits die gegebenen Grundlagen nicht logisch sind.

                              Das ist nicht auf dich gemünzt, sondern genauso auf mein anderes Posting - wo mir auch nicht klar ist, warum Stammposter einer Sache nicht einfach selbst auf den Grund gehen.

                              Sagen wir's mal so: Manches Häufchen ist einem so unangenehm, dass man Untersuchungen daran lieber nur aus der Ferne macht. Aber wenn man aus der Ferne etwas glitzern sieht, könnte es ja vielleicht doch der Brilliant sein, den jemand vermisst. Also ist es auf jeden Fall richtig, darauf hinzuweisen - auch "auf bloßen Verdacht".
                              Auch im Alltag stürmen unzählige Eindrücke und Informationen auf uns ein, und es liegt an jedem selbst, zu entscheiden, welche davon uns weiterbringen und welche nicht.

                              Ich verstehe daher wirklich nicht, worüber du dich aufregst.

                              Ciao,
                               Martin

                              --
                              Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
                              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  3. Aber das ist ja auch gar nicht der Punkt. Der Punkt ist, dass der OP hier ein Funktionsargument "rueckgabe" nennt - und das ist im Kontext dieser Funktion einfach irreführend, weil es kein Rückgabe- sondern ein Eingabewert der Funktion ist.

                    Jetzt nochmal zum besseren Verständnis für mich ;)

                    Laut der Jquery-Docu: success is called if the request succeeds. It is passed the returned data, a string containing the success code, and the XMLHttpRequest object.

                    Somit beinhaltet die Variable "rueckgabe" aus der Callback Function success: function(rueckgabe) die Rückgabe des XHR. Also die Rückgabe des aufgerufenen PHP-Skriptes.

                    Und drittens ist es -vorausgesetzt, ich liegen mit Punkt zwei richtig- Unfug, einen boolschen Wert, der nur true oder false sein kann, nochmal explizit mit dem Wert true zu vergleichen, um dann true oder false herauszubekommen.

                    Da, wie molily schon erwähnte, der dataType Standardmäßig vom Typ "text" ist, also ein String, kann man schlecht die Abfrage if(!rueckgabe) ausführen. Da der Datentyp kein boolean ist. Dementsprechend gibt das PHP-Skript den String "true" zurück, wenn alles ok ist. Andernfalls den Fehlertext, welcher weiter verarbeitet werden könnte. Also halte ich die Abfrage if(rueckgabe != 'true') für nicht falsch. Mag sein, dass sie für einen außenstehenden Verwirrend aussehen mag.

                    Wenn ich mit den Aussagen falsch liege, bin ich für jedes tiefergehende Verständnis offen.

                    Gruss

                    1. Da, wie molily schon erwähnte, der dataType Standardmäßig vom Typ "text" ist, also ein String, kann man schlecht die Abfrage if(!rueckgabe) ausführen. Da der Datentyp kein boolean ist.

                      Doch kann man. if(!string) prüft ob der String ungleich einem "befüllten" String ist. Also ob es ein leerer String ist.

                      Das hat Mathias genauer bereits hier erklärt

                      Dementsprechend gibt das PHP-Skript den String "true" zurück, wenn alles ok ist. Andernfalls den Fehlertext, welcher weiter verarbeitet werden könnte. Also halte ich die Abfrage if(rueckgabe != 'true') für nicht falsch. Mag sein, dass sie für einen außenstehenden Verwirrend aussehen mag.

                      Ja, insofern, dass true ein Schlüsselwort in JS ist, daher die Verwirrung.

                      Struppi.

            2. Das wäre meine Lösung der Aufgabenstellung.

              Hi Mathias,

              der interessante Ansatz, den ich meine, entstammt diesem Thread und der Verfasser hat hier ein Beispiel online gestellt.

              Grüße, Arno

      2. Oder find() verwenden, s. [molily].

        Es ist ja schön, dass sich Infos ankommen und sich herumsprechen. Maßgeblich ist aber nicht meine Behauptung - hat sie eigentlich jemand geprüft? -, sondern der Quellcode. Warum nicht in die API-Dokumentation oder direkt in den jQuery-Code schauen. Ein Blick dort hinein sollte jeder jQuery-Nutzer werfen, denn daraus lässt sich viel lernen. Will man etwas mehr mit jQuery machen oder JavaScript-Kenntnisse aufbauen, so führt kein Weg daran vorbei, »unter die Haube« zu schauen.

        http://bit.ly/jqsource

        // HANDLE: $(expr, context)  
        // (which is just equivalent to: $(context).find(expr)  
        } else {  
        	return jQuery( context ).find( selector );  
        }
        

        In der Dokumentation: http://api.jquery.com/jQuery/#selector-context

        »Internally, selector context is implemented with the .find() method, so $('span', this) is equivalent to $(this).find('span').«

        Tools, die eine den Source-Code übersichtlich machen:
        http://james.padolsey.com/jquery/#v=1.4&fn=jQuery.fn.init
        http://www.keyframesandcode.com/resources/javascript/deconstructed/jquery/

        Ferner:
        10 Things I Learned from the jQuery Source zeigt, wie man sich im jQuery-Code zurechtzufindet.

        Mathias