Je possède ce code, qui fonctionne très bien:Meilleur code jQuery pour sélectionner un bouton radio si aucun n'est sélectionné?
if ($('table#attribute_Size input.quantitycheckbox:checked').length == 0)
$('table#attribute_Size input.quantitycheckbox:first').attr({ checked: true });
Comme vous pouvez le voir si, il est assez long et la plupart du sélecteur est répété. Y a-t-il un bon moyen de le raccourcir? J'ai essayé ceci mais cela ne fonctionne pas (je suppose qu'il regarde des éléments imbriqués au lieu du sélecteur courant).
var $sizeRadios = $('table#attribute_Size input.quantitycheckbox');
if ($(':checked', $sizeRadios).length == 0)
$(':first', $sizeRadios).attr({ checked: true });
Eh oui, ne connaissait pas la fonction 'is'. J'ai corrigé la clause if - elle ne devrait vérifier le premier bouton que si aucun n'est coché - et enlevé "table" du sélecteur selon la suggestion de David Radcliffe. – DisgruntledGoat
Cela pourrait rendre le code un peu plus long pour inclure la table, mais cela la rendrait également un peu plus performante. C'est un compromis, mais personnellement je laisserais la table. – Lindsay
Une autre chose ... vérifier une condition négative avec des sélecteurs est parfois difficile car il peut y avoir plusieurs éléments retournés. Si le premier n'arrive pas à être un match, alors vous obtiendrez un faux positif si l'un des autres est. Donc, pour la condition négative vous serait probablement plus en sécurité ceci: si (sizeRadios.filter $ (. « : Vérifié ») Longueur == 0) .filter supprime tous les nœuds du jeu de retour qui répondent à la condition . – Lindsay