php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.06.2010, 11:50  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 623
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard jQuery findet Element nicht

Hallo,
ich hab grad ein ziemlich doofes Problem mit jQuery.
Ich hab eine Liste von input die immer eine Fortlaufende id haben:
email1, email2 usw.
Nun will ich mit jQuery weitere Felder anhängen, wobei die id natürlich fortlaufen muss, aber es kann Lücken geben und diese müssen gefüllt werden.
Beispiel: email1, email3. Dann muss erst das Element mit id: email2 erzeugt werden und hinten angehängt werden und dann nr. 4 usw...

So mein JavascriptCode:
Code:
function neueMail(){
    var id = 1;

    do{
        id = id +1;
    }while($('#email' + id).length > 0);


    if (id < 10){
        id = '0' + id;
    }

    var name = $('#userid').val() + id;

    var content = '<p>' +
        '<label for="email' + id + '">Email : </label><input type="text" id="email' + id + '" name="email[]" /><br />' +
        '<label for="benutzer' + id + '">Benutzer : </label><input type="text" value="' + name + '" id="benutzer' + id + '" name="benutzer[]" /><br />' +
        '<label for="passwort' + id + '">Passwort : </label><input type="text" id="passwort' + id + '" name="passwort[]" /><br />';
        '</p>';

    $('p').last().after(content);
    }
Der HTML-Code enthält am Anfang mindestens ein gleichaufgebauten <p>-Tag mit Inhalt:
Code:
<p>    <label for="email1">Email : </label><input value="..." id="email1" name="email[]" type="text">    <br>    <label for="benutzer1">Benutzer : </label><input value="..." id="benutzer1" name="benutzer[]" type="text">    <br>    <label for="passwort1">Passwort : </label><input value="..." id="passwort1" name="passwort[]" type="text">    <br></p>
So nun hab ich durch PHP von den den p-Tags generiert und wenn ich dann mit jQuery das 6 (also id=6) hinzufügen will dann klappt das auch ganz toll...
ABER danach wo eigentlich Nr. 7 kommen sollte kommt wieder ein mit id=6 ...

Ich hab leider keinen Plan wo das Problem ist.
Ich hab auch schon versucht die Elemente mit den Grundfunktionen von Javascript zu erstellen createElement usw, dann hab ich genau das gleiche Problem gehabt. Auch als ich die Elemente nicht mit dem jQuery-Selector sondern mit document.getElementById gesucht hab hat nichts geändert.

Die Fehlerkonsole spuckt keine Fehler aus...

Ich hoffe ihr könnt mir helfen.

Grüße
ByStones ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.06.2010, 13:28  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ByStones Beitrag anzeigen
wobei die id natürlich fortlaufen muss, aber es kann Lücken geben und diese müssen gefüllt werden.
Beispiel: email1, email3. Dann muss erst das Element mit id: email2 erzeugt werden und hinten angehängt werden und dann nr. 4 usw...
Warum „müssen“ diese IDs angeblich fortlaufend sein?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.06.2010, 13:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.243
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Warum müssen es überhaupt IDs sein. Für sowas gibt es name oder bei jQuery auch class.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 11.06.2010, 13:35  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 623
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

Weil die Benutzer nicht alle gleich heißen können ?
Jeder Nutzer hat eine eigene Nummer...

nutzer01,nutzer02 und ab nutzer10 fällt die 0 vorne weg...

Ob die Felder jetzt Id oder class haben is ansich ja egal, es ist ja nur als hilfe da um die nummern durchzulaufen...

Ok, mal ganz anderer Ansatz:
Ich speicher die Vergebenen Nummer in einem Array und durchlaufe dann das, dann muss ich keine IDs vergeben und bin nicht davon abhänig dass jQuery die Elemente findet...

Geändert von ByStones (11.06.2010 um 13:42 Uhr).
ByStones ist offline   Mit Zitat antworten
Alt 11.06.2010, 13:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.243
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Nein, das ist nicht egal. class kann nämlich mehrfach vorkommen und eine ID muss immer generiert werden.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 11.06.2010, 13:42  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ByStones Beitrag anzeigen
Weil die Benutzer nicht alle gleich heißen können ?
Jeder Nutzer hat eine eigene Nummer...
Das ist keine Antwort auf die Frage.


Zitat:
Ob die Felder jetzt Id oder class haben is ansich ja egal,
Sie brauchen vermutlich weder ID noch Class - zumindest nicht unbedingt.

Es gibt in JavaScript durchaus vielfältige andere Möglichkeiten, die Referenz auf ein Element zu erhalten, als nur per ID. Wenn du noch keine kennst - dann erweitere dein Grundlagenwissen.
Und jQuery bietet dir mit der Möglichkeit, einen CSS-artigen Selektor anzugeben, noch simplere Möglichkeiten.


Wenn du es nicht alleine hinbekommst, und weitere Hilfe hier suchst - dann beschreibe bitte, was du letztendlich erreichen willst. (Viele Neulinge machen den Fehler, immer nur nach Lösungen auf dem Holzweg zu fragen, auf den sie sich bereits begeben haben; dabei liegt die [sinnvolle] Lösung oft darin, es anders zu machen.)


Zitat:
es ist ja nur als hilfe da um die nummern durchzulaufen...
Ebenso sicher, wie man in PHP sagen kann, dass du höchstvermutlich etwas ganz falsch machst, wenn du anfängst Variablenamen „durch zu nummerieren“, weil du bspw. keine Arrays kennst, kann man auch in Bezug auf HTML/DOM sagen, dass du etwas falsch machst, wenn du dich bemühst, „fortlaufend nummerierte“ IDs zu vergeben, nur weil du keine andere Möglichkeit zur Selektion bestimmter Elemente gefunden hast.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.06.2010, 13:51  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 623
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

Ok, ich wär dämlich auf das mit den Arrays hätte ich eigentlich gleich kommen können... *fett gegen Kopf hau*
Naja ich habs jetzt nochmal mit den Arrays gemacht und siehe da es geht...

Eindeutige IDs bauch ich aber immer noch wegen der <label> damit ich das for-Attribute setzten kann....

Ich frag mich aber immer noch warum jQuery die Elemente nicht gefunden hat?

Grüße

Zitat:
Es gibt in JavaScript durchaus vielfältige andere Möglichkeiten, die Referenz auf ein Element zu erhalten, als nur per ID. Wenn du noch keine kennst - dann erweitere dein Grundlagenwissen.
Und jQuery bietet dir mit der Möglichkeit, einen CSS-artigen Selektor anzugeben, noch simplere Möglichkeiten.
Ja aber dadurch finde ich dann ja keine Lücken. Ich haub auch versucht alle inputs zu Durchlaufen, per regulärem Ausdruck deren Inhalt auszuwerten und dadurch die Nummer zu generieren... Da war wieder genau das gleiche Problem dass der die Elemente nicht gefunden hat die ich nachträglich erzeugt habe...

Und genau das war auch das Problem und ich glaube nicht dass es mit einem anderen Selektor besser geklappt hätte, da er wie oben geschrieben die Elemente weder per document.getElementById noch über ein CSS-jQuery-Selektor.

Geändert von ByStones (11.06.2010 um 13:57 Uhr).
ByStones ist offline   Mit Zitat antworten
Alt 11.06.2010, 13:57  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ByStones Beitrag anzeigen
Eindeutige IDs bauch ich aber immer noch wegen der <label> damit ich das for-Attribute setzten kann....
Dazu braucht es aber keine fortlaufenden IDs mehr - wenn da „Lücken“ drin sind, ist das in Bezug darauf vollkommen egal.


Und IDs braucht es auch nicht unbedingt, wenn man das Input- ins Label-Element hineinpackt. (Nur IE <= 6 hat damit ein Problem, dort setzt klicken auf das Label dann nicht mehr den Fokus auf das Feld bzw. ändert den checked-Status.)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.06.2010, 14:03  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 623
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Dazu braucht es aber keine fortlaufenden IDs mehr - wenn da „Lücken“ drin sind, ist das in Bezug darauf vollkommen egal.


Und IDs braucht es auch nicht unbedingt, wenn man das Input- ins Label-Element hineinpackt. (Nur IE <= 6 hat damit ein Problem, dort setzt klicken auf das Label dann nicht mehr den Fokus auf das Feld bzw. ändert den checked-Status.)
Ok dass man die IDs weglassen kann wenn das ganze ins label mit reinkommt wusste ich nicht.

Ja so gesehen braucht man die fortlaufenden IDs nichtmehr, aber da ich das mit den Labeln nicht wusste, dachte ich dass man die vergeben muss (!). Und dann wollte ich die halt als Hilfe nehmen um die Lücken zu finden...

Ok das mit den Lücken finden ist erledigt. Arrays FTW

Aber warum hat jQuery die Elemente nicht gefunden ???

Grüße
ByStones ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Mit XPath im DOMDocument PHP5 und der foreach Schleife einen Element WERT hjw-kunstwerk PHP Tipps 2010 3 03.06.2010 00:07
jQuery Plug scroll to - wie einbetten? mxxxx JavaScript, Ajax und mehr 5 24.04.2010 18:12
jQuery Ajax und $(this) Problem halskrause JavaScript, Ajax und mehr 8 01.03.2010 17:39
[Erledigt] Jquery Selektoren chunky JavaScript, Ajax und mehr 5 14.02.2010 11:14
Auf ein einzelnes Element eine ausgewählten Datensatzes zugreifen fender PHP Tipps 2009 12 15.01.2010 16:18
Element erstellen, in Quelltext einfügen und auf dieses zugreifen können R4v3r JavaScript, Ajax und mehr 8 18.12.2009 11:33
jQuery Ablauf halskrause JavaScript, Ajax und mehr 8 24.11.2009 13:14
Umsetzung von parentNode in jQuery nikosch JavaScript, Ajax und mehr 8 03.08.2009 21:25
[Erledigt] jQuery Dateien nachladen Phoscur JavaScript, Ajax und mehr 7 14.03.2009 13:44
jQuery Plugin - so richtig? stayInside JavaScript, Ajax und mehr 5 23.02.2009 12:34
For Schleife mit jQuery phpbeginner JavaScript, Ajax und mehr 3 22.11.2008 22:35
Thickbox Funktionalität in jQuery Plague JavaScript, Ajax und mehr 1 28.07.2008 23:58
Array Element vor und nach dem aktuellen Element ausgeben NetLook PHP Tipps 2006 2 09.05.2006 15:29
[JS/CSS] Element erst onclick sichtbar machn script.aculo.us StatischeEntladung HTML, Usability und Barrierefreiheit 1 06.04.2006 18:32
[Erledigt] Element mit Zeitschalter HTML, Usability und Barrierefreiheit 1 04.10.2005 11:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery findet element nicht, jquery findet id nicht, http://www.php.de/javascript-ajax-und-mehr/68828-jquery-findet-element-nicht.html, jquery post kein element gefunden, jquery fortlaufende id, jquery jedem element nummer vergeben, jquery ajax \kein element gefunden\, jquery durchnummerieren, jquery id vergeben, jquery elemente nummerieren, jquery getelementbyid, jquery erkennt id von php datei nicht, jquery erkennt id nicht, jqery findet element nicht, jquery findet objekt nicht, jquery id selector element nicht vorhanden, jquery findet nichts, jquery mit each fortlaufende ids finden, jquery element nicht gefunden, jquery einzelnes element

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum