Stubenhocker: JQuery: Abfragen ob Objekt existiert

Hallo Forum,

stelle gerade meine Seiten von Prototype zu JQuery um. Die Syntax ist ja relativ ähnlich, aber nun brauche ich doch Hilfe.

In Prototype war es ganz einfach, abzufragen ob ein Objekt existiert:

  
var i=0;  
while($("cal_tr"+i))  
{  
 /* mach was */  
 i++;  
}  

Diese Schleife geht so lange, bis ein Objekt mit der ID cal_tr0...n nicht mehr existiert.
Dieser Code ist einfach nach JQuery umzuschreiben, man muss eine Raute (#) vor dem "cal_tr" setzen, denn JQuery hält sich mehr an die CSS-Schreibweise (# = ID, . = class etc.)
Leider resultiert dieser entstandene Code (mit Raute) in einer Endlosschleife. Ich müsste also abfragen, ob das Objekt existiert, das ich gerade anzusteuern versuche.
Leider finde ich keine Möglichkeit, dies zu tun. Ein $("bla").exists gibt es leider nicht. Gibt es eine Möglichkeit, dies in JQuery zu tun?

Liebe Grüße
Stubenhocker

  1. Diese Schleife geht so lange, bis ein Objekt mit der ID cal_tr0...n nicht mehr existiert.

    Warum musst du fortlaufend nummerierte IDs haben? Tuts nicht auch ein each() auf einen gemeinsamen Selektor?

    Zu deiner Frage:
    http://jqueryfordesigners.com/element-exists/

    1. Hallo

      Zu deiner Frage:
      http://jqueryfordesigners.com/element-exists/

      Danke, das war es was ich gesucht habe. Habe noch keine Seite gefunden, auf der aufgezählt ist, was bei JQuery alles nach einem Punkt stehen kann...

      Warum musst du fortlaufend nummerierte IDs haben? Tuts nicht auch ein each() auf einen gemeinsamen Selektor?

      Weil ich zuerst auf alle Zeilen eine Aktion ausführe, und unmittelbar im Anschluss mit *einer bestimmten* eine weitere Aktion ausführe:

        
      	var i=0;  
      	while($("#cal_tr" + i).length!=0)  
      	{  
      		$("#cal_tr" + i).css('backgroundColor', "#fff");  
      		i++;  
      	}  
      	$("#cal_tr" + row).css('backgroundColor', "#CD853F");  
      
      

      Die fortlaufenden IDs (i) haben eine Spanne von mindestens 4 und maximal 6.

      Gruß
      Stubenhocker

      1. Habe noch keine Seite gefunden, auf der aufgezählt ist, was bei JQuery alles nach einem Punkt stehen kann...

        Die jQuery-Dokumentation wäre ein Ansatz - die Dokumentation ist wie die von PHP vorbildlich.

        Weil ich zuerst auf alle Zeilen eine Aktion ausführe, und unmittelbar im Anschluss mit *einer bestimmten* eine weitere Aktion ausführe:

        Was spricht dann gegen :nth-child() oder den adjacent sibling selector?

        1. Hallo

          Was spricht dann gegen :nth-child() oder den adjacent sibling selector?

          Der Internet Explorer...

          Gruß
          Stubenhocker

          1. Der Internet Explorer...

            Unsinn.

      2. Hi,

        Warum musst du fortlaufend nummerierte IDs haben? Tuts nicht auch ein each() auf einen gemeinsamen Selektor?

        Weil ich zuerst auf alle Zeilen eine Aktion ausführe, und unmittelbar im Anschluss mit *einer bestimmten* eine weitere Aktion ausführe:

        Das beantwortet die Frage nicht.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Die Endlosschleife basiert darauf, dass jQuery in jedem Fall ein Objekt zurückgibt, welches nach der Typenkonvertierung nach Boolean "true" zurückgibt. Du müsstest also nach dessen length-Instanz fragen - diese wird, wenn sie "0" zurückgibt, nach der Typenkonvertierung "false".

    var  i=0;  
    while($("#cal_tr"+i).length)  
    {  
     /* mach was */  
     i++;  
    }
    

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a