Est-ce que quelqu'un connaît un moyen simple, en utilisant jQuery, pour sélectionner tous les éléments J'essaie de faire une certaine logique de validation et j'aimerais simplement sélectionner tous ces éléments avec un seul sélecteur, puis appliquer une classe d'alerte à chacun de leurs parents. Ceci, je sais comment faire une fois que j'ai sélectionné tous les éléments, mais je n'ai pas vu de sélecteur qui gère ce cas. P>
am je vais devoir choisir tous les éléments
code> dont l'attribut val () donne une certaine valeur? P>
5 Réponses :
Sélecteurs d'attribut est ce que vous recherchez, je crois. P>
quelque chose comme Voir aussi: p>
$ + ('élément [attribut = "valeur"]') code> p>
* = code> n'importe où li>
^ = code> commence par li>
$ = code> se termine par li>
~ = code> contient Word li>
Cette syntaxe ne fonctionne malheureusement pas avec Select Tags. Mais cela fait avec d'autres éléments d'entrée.
@Tesserex: vous êtes correct. Je n'allais pas mentionner explicite autant que la syntaxe. Je l'ai changé pour être un peu plus vague, merci.
En fait, cela ne fonctionne pas nécessairement pour aucun élément d'entrée i>. C'est-à-dire que .val () code> renvoie la valeur actuelle d'une propriété i>, pas la valeur d'origine d'un attribut i>, qui est ce que
[attribut = 'valeur'] code> est testant.
Vous pouvez utiliser: où X est la valeur contre laquelle vous souhaitez vérifier la valeur de SELECT. P> P>
Les réponses existantes ne fonctionnent pas sur certaines tags, mais j'ai trouvé quelque chose qui fait. Demandez un SELECT qui a une option sélectionnée.
$("select:has(option[value=blah]:selected)")
Pourquoi ne fonctionne pas SELECT [VALUE = X] CODE> Travail? Eh bien d'abord parce que
Wow, alors ma réponse fonctionne à cause d'un bogue dans l'interprétation de "valeur"? Intéressant.
Pas vraiment intéressant ... plus, confusion inficielle imo! Cette zone du DOM est en colère avec des malentendus et des bogues, dans les deux navigateurs et les applications, ce qui peut rendre cela vraiment difficile à résoudre ce qui se passe.
Cela signifie donc que cela ne devrait probablement pas fonctionner: $ ("p"). Pas (". Hidden_Control"). Rechercher ('Option: sélectionnée [valeur = "]') code> pour la même raison que Tesserex 'code ne devrait pas? L'alternative semble beaucoup moins élégante qui est une honte ...
@Danny: En fait, je pense que cela devrait fonctionner (au moins dans les jqueries modernes - Texte de réponse mis à jour comme la manipulation de JQuery des attributs VS Propriétés a changé). : Sélectionné code> est défini (par jQuery - ce n'est pas un pseudo-classe CSS standard) comme fonctionnant en fonction de la sélection actuelle, pas la valeur d'attribut (comme
[sélectionné] code> .
Vous pouvez créer un événement de changement qui met la valeur dans un attribut personnalisé sur l'élément Select chaque fois que la valeur change. Vous pouvez ensuite utiliser un simple sélecteur pour trouver tous les éléments sélectionnés qui ont cette valeur. Par exemple: et ensuite vous pouvez le faire: p> $ matchs aura toutes vos sélectionnées correspondantes. P> C'est beaucoup plus facile que d'avoir à itération à travers des éléments. N'oubliez pas de définir la valeur sélectionnée à la valeur initiale lors du rendu de la page afin de ne pas avoir besoin de déclencher un événement de changement pour chaque SELECT afin que la valeur de sélection est définie. P> p>