2012-01-16 2 views
1

J'ai une liste de zones de saisie avec des dates (et le nom de classe "newDate") dans celles-ci et je peux en ajouter plus dynamiquement. Lorsque j'essaie d'obtenir la valeur de la dernière zone de texte ajoutée, je me retrouve toujours avec la première, qui était une zone de texte rendue avec la page.Sélection de la dernière zone de texte ajoutée dynamiquement

$(".newDate:last-of-type").val() 

Ai-je besoin de changer mon sélecteur pour attraper les zones de texte ou dynamiquement ajouté il y a autre chose que je dois penser ici? L'emplacement du script avec le sélecteur est-il pertinent?

+0

Vous devriez publier plus de code, en particulier le code HTML et comment vous "ajoutez" les nouveaux, vous pourriez les insérer dans le DOM – Miquel

+1

Vous ne voulez pas utiliser le pseudo-sélecteur de dernier-né avec jquery. Si c'est séquentiellement le dernier de la liste, utilisez: last. Si ce n'est pas le cas, vous devrez peut-être utiliser d'autres approches. – kinakuta

Répondre

5

Tant que le sélecteur est exécuté une fois que les zones de texte ont été ajoutés, ce qui suit fonctionnera:

$(".newDate").last().val() 
+0

fonctionne comme un charme ... pas sûr pourquoi j'ai regardé le "dernier type" du tout! – Stian

1

simple assurez-vous que votre sélecteur de classe est assez spécifique pour sélectionner uniquement les éléments que vous souhaitez, puis utilisez the: last selector au lieu de: last-of-type.

Edit: Voici un exemple complet jsFiddle: http://jsfiddle.net/9HhUJ/1/

2

essayer

$(":text.newDate:last").val() 
0

$ ('d'entrée newDate.') Dernier() val();..

Questions connexes