2013-06-25 6 views
5

Das verlangsamt wirklich meinen Fortschritt heute Morgen. Jede Hilfe wäre unglaublich. Hier ist mein Code, ich verwende, um zu versuchen jedes Textfeld zu bekommen:Wie bekomme ich alle Textfelder in einem gegebenen div basierend auf seinem Klassennamen?

$('.contactInfo input[type="text"]').each(function() { 

}); 

Die obigen Code funktioniert, aber es hält sich ziehen Auswahlboxen als auch. Ich habe versucht, einen Doppelpunkt zwischen dem Namen der Klasse und Eingabe Typ sowie eine Reihe von anderen Möglichkeiten, um jedes Textfeld (: Eingabe,: Text, Typ = Text, etc.) zu bekommen. Verzeihen Sie mein Styling hier, da ich völlig neu bin, Fragen zu stellen und die Formatierung nicht verstanden habe.

Hinweis: .contactInfo ist eine Klasse, die dem div zugeordnet ist, das die Textfelder enthält, die ich erhalten möchte. Außerdem benutze ich das ausgewählte jquery-Plugin, um meine Auswahlkästchen zu stylen. Das kann oder darf nichts mit meinem Problem zu tun haben, wollte Sie nur wissen lassen.

Vielen Dank im Voraus für alles, was Sie mir helfen können!

Update: Ich habe jede hier aufgelistete Lösung ausprobiert. Jeder nimmt die Auswahlbox, aber es gibt seine ID nicht zurück. Also, ich benutze nur einen Workaround, der überprüft, ob seine ID Null ist, so dass ich es während der Iterationen überspringen kann. Ich schätze wirklich jeden von euch für eure Beiträge! Vielen Dank!

+1

Es wäre besser, wenn Sie Ihre HTML zeigen. –

+0

'$ ('input.contactInfo [type =" text "]'). Je (function() { });' – tymeJV

+0

was planen wir mit textboxen im div? – Learner

Antwort

6

Siehe http://api.jquery.com/text-selector/:

$('.contactInfo input:text')

+1

Sie brauchen nicht einmal "Eingabe: Text", es ist redundant. ': text' wählt für Eingaben vom Typ text aus. –

+1

@SurrealDreams: Das Hinzufügen von 'Eingabe' macht es jedoch schneller. Siehe die Dokumentation. – SLaks

+0

Ich hatte nichts über die Pseudo-Selektoren herausgefunden, danke, dass sie mir das gezeigt haben. 'input: text' ist der bessere Weg. Danke, @SLaks. –

0

versuchen diese

$(".contactInfo").children("input[type=text]").each(function(){ 
    //Do stuff here 
}); 
5
$(".contactInfo").find("input[type=text]") 

Dies sollte alle Textfelder in diesem div (.contactInfo) finden. Eine andere Sache, die zu beachten ist, ist, dass die Methode find() viel schneller sein wird als die Kontextselektoren.

http://jsperf.com/jquery-find-vs-context-sel

Verwandte Themen