Στην jQuery, πώς μπορώ να επιλέξω ένα στοιχείο με βάση το χαρακτηριστικό όνομα;

Έχω 3 κουμπιά επιλογής στην ιστοσελίδα μου, όπως παρακάτω:

Λύση

Όλα αυτά βρίσκονται στην τεκμηρίωση, η οποία έχει ένα πολύ παρόμοιο παράδειγμα με αυτό:

$("input[type='radio'][name='theme']").click(function() {
    var value = $(this).val();
});

Θα πρέπει επίσης να σημειώσω ότι έχετε πολλαπλά πανομοιότυπα αναγνωριστικά σε αυτό το απόσπασμα. Αυτό είναι άκυρη HTML. Χρησιμοποιήστε κλάσεις για να ομαδοποιήσετε σύνολο στοιχείων, όχι αναγνωριστικά, καθώς θα πρέπει να είναι μοναδικά.

Σχόλια (7)

Για να προσδιορίσετε ποιο κουμπί επιλογής είναι επιλεγμένο, δοκιμάστε το εξής:

$('input:radio[name=theme]').click(function() {
  var val = $('input:radio[name=theme]:checked').val();
});

Το συμβάν θα συλληφθεί για όλα τα κουμπιά επιλογής στην ομάδα και η τιμή του επιλεγμένου κουμπιού θα τοποθετηθεί στο val.

Update: Μετά την ανάρτηση αποφάσισα ότι η παραπάνω απάντηση του Paolo'είναι καλύτερη, αφού χρησιμοποιεί μία λιγότερη διάσχιση του DOM. Αφήνω αυτή την απάντηση να παραμείνει, αφού δείχνει πώς να λαμβάνετε το επιλεγμένο στοιχείο με τρόπο που να είναι συμβατός με cross-browser.

Σχόλια (4)

Κάτι τέτοιο ίσως;

$("input:radio[name=theme]").click(function() { 
 ...
}); 

Όταν κάνετε κλικ σε οποιοδήποτε κουμπί επιλογής, πιστεύω ότι θα καταλήξει επιλεγμένο, οπότε αυτό θα κληθεί για το επιλεγμένο κουμπί επιλογής.

Σχόλια (2)