2010-04-19 5 views
0

J'ai un formulaire HTML composé de quelques entrées de texte. J'utilise jqTransform pour les implorer. Maintenant, je veux ajouter deux boutons qui vont ajouter et supprimer l'entrée de texte dynamiquement.jQuery selector en fonction des enfants

L'ajout est facile: $ ('# container'). Append (''); $ ('input [nom = foo]: dernier enfant'). JqTransInputText();

Mais la suppression est difficile: $ ('WHAT-TO-SELECT'). Remove();

Je ne peux pas faire "input [nom = foo]: last-child" car il est déjà enveloppé (certains divs) par jqTransform. Pour poser cette question d'une autre manière: Comment est-ce que je choisis en fonction de "qui a un enfant de type input avec 'foo' comme nom"?

Répondre

0

J'ai fermé le problème non pas en donnant une solution au problème, à la place je joins l'étiquette d'entrée avec div, éliminant ainsi le problème. Donc, pour enlever l'étiquette d'entrée, je supprime simplement la div. Merci quand même les gars!

1

Vous pourriez essayer de sélectionner le input with 'foo' as its name et de le saisir comme parent.

$('input[name=foo]').closest('.parentSelector').remove();

1

Pas tout à fait sûr de ce que vous voulez dire. mais il semble que vous pourriez faire plus de travail par tout enchaînant .. .. à savoir

$('input[name=foo]:last-child').jqTransInputText().remove(); 

Je ne suis pas sûr que ce soit exactement ce que vous cherchez .. sinon, regardez dans le find function en jQuery.

+0

Désolé .. plus d'infos sur find. Fondamentalement, find peut soit filtrer votre collection actuelle dans la chaîne. c'est-à-dire .. '$ (" p "). find (" span "). css ('color', 'red');' ne changera que les couleurs des paragraphes contenant des intervalles. Vous pouvez aussi faire ceci par '$ ('p span')', mais utiliser find vous permet de faire des choses comme '$ ('p'). SlideUp(). Find ('span'). Css ('color', 'rouge'); ' –

1
$('input[name=foo]').parent().remove(); 

En outre, la méthode parente peut être fournie avec un sélecteur normal afin de supprimer uniquement un parent spécifique.