Μέθοδος filter
Η μέθοδος filter αφήνει στο σύνολο μόνο
εκείνα τα στοιχεία που ικανοποιούν
έναν συγκεκριμένο επιλογέα.
Σύνταξη
Φιλτράρισμα βάσει επιλογέα:
.filter(επιλογέας);
Η παράμετρος μπορεί επίσης να είναι DOM στοιχεία ή αντικείμενο jQuery:
.filter(DOM στοιχείο ή αντικείμενο jQuery);
Μπορείτε επίσης να φιλτράρετε στοιχεία χρησιμοποιώντας
μια συνάρτηση, η οποία καλείται ξεχωριστά για
καθένα από τα επιλεγμένα στοιχεία. Εάν επιστρέψει
true, τότε το τρέχον στοιχείο θα
συμπεριληφθεί στο τελικό αποτέλεσμα, εάν false
- δεν θα συμπεριληφθεί. Τα ίδια τα στοιχεία είναι προσβάσιμα στη συνάρτηση,
στη μεταβλητή this, και οι τακτικοί αριθμοί τους
στο σύνολο — στη μεταβλητή index:
.filter(function(index, elem))
Παράδειγμα
Ας βρούμε όλες τις παραγράφους, ας βάλουμε στο
ξεκίνημά τους το κείμενο '!' χρησιμοποιώντας
το prepend,
μετά να πάρουμε από τα βρεθέντα μόνο τις παραγράφους
με την κλάση www χρησιμοποιώντας το filter
και να βάλουμε στο τέλος τους το κείμενο '?' χρησιμοποιώντας
το append:
<p>κείμενο</p>
<p>κείμενο</p>
<p class="www">κείμενο</p>
<p class="www">κείμενο</p>
$('p').prepend('!').filter('.www').append('?');
Ο κώδικας HTML θα γίνει κάπως έτσι:
<p>!κείμενο</p>
<p>!κείμενο</p>
<p class="www">!κείμενο?</p>
<p class="www">!κείμενο?</p>
Παράδειγμα
Ας βρούμε χρησιμοποιώντας μια συνάρτηση όλες
τις παραγράφους που έχουν την ετικέτα
strong
και ας βάλουμε σε αυτές το κείμενο '!!!':
<p><strong>κείμενο</strong></p>
<p><strong>κείμενο</strong></p>
<p>κείμενο</p>
<p>κείμενο</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
Ο κώδικας HTML θα γίνει κάπως έτσι:
<p>!!!</p>
<p>!!!</p>
<p>κείμενο</p>
<p>κείμενο</p>