Die Existenz auf ein Element in jQuery hat einen Haken:
if (jQuery('#elem')) { //...
liefert immer ein Objekt zurück und kann daher nicht auf ‚undefined‘ mit typeof überprüft werden. Da der Boolsche Wert des Objektes immer true ist, entfällt auch der Vergleich.
Die Lösung ist das zurückgelieferte Objekt auf seine Länge zu prüfen:
if (jQuery('#elem').length > 0) { // Objekt existiert...