Παρακαλώ διαβάστε το παράδειγμα: .find() μεθόδος
Παράδειγμα
Αναζητήστε όλους τους απογόνους του στοιχείου p και ρυθμίστε το χρώμα τους σε κόκκινο:
$("p").find("span").css('χρώμα','κόκκινο');
Ορισμός και χρήση
Η μέθοδος find() αποκτά τα απογόνια κάθε στοιχείου της τρέχουσας συλλογής στοιχείων, φιλτράροντας τα μέσω επιλογής, αντικειμένου jQuery ή στοιχείου.
Γλώσσα
.find(selector)
Παράμετροι | Περιγραφή |
---|---|
selector | Τροφοδοσία τιμής κειμένου, που περιέχει την έκφραση επιλογής που χρησιμοποιείται για την αντιστοίχιση της τρέχουσας συλλογής στοιχείων. |
Λεπτομερής περιγραφή
Αν δοθεί ένα αντικείμενο jQuery που εκπροσωπεί μια συλλογή στοιχείων DOM, η μέθοδος .find() επιτρέπει την αναζήτηση των απογόνων αυτών των στοιχείων στο δέντρο DOM και τη δημιουργία μιας νέας συλλογής jQuery από τα ταιριάζοντα στοιχεία. Η .find() είναι παρόμοια με τη μέθοδο .children(), με τη διαφορά ότι η τελευταία εξετάζει μόνο το ένα επίπεδο κάτω από το δέντρο DOM.
Η πρώτη χαρακτηριστική λειτουργία της μεθόδου .find() είναι ότι αποδέχεται την έκφραση επιλογής που παρέχουμε στη συνάρτηση $(), με τον ίδιο τύπο. Θα φιλτράρει τα στοιχεία με βάση αν ταιριάζουν στην έκφραση.
Προσέξτε την παρακάτω απλή αναγνωριστική λίστα:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>
Θα ξεκινήσουμε από τη λίστα II για να βρούμε τα στοιχεία της λίστας που περιέχονται σε αυτήν:
$('li.item-ii').find('li').css('background-color', 'red');
Το αποτέλεσμα της έρευνας είναι ότι τα έργα A, B, 1, 2, 3 και C έχουν οριστεί με φόντο κόκκινο. Ε zelfs als het item II overeenkomt met de expressie van de selectie, het wordt niet opgenomen in de resultaten; alleen de afstammelingen worden gematcht.
Διαφορετικά από τις άλλες μεθόδους αναζήτησης δέντρου, η έκφραση επιλογέα είναι απαραίτητη για το .find(). Αν χρειάζεται να επιστρέψουμε όλους τους απογόνους, μπορούμε να μεταφέρουμε τον γενικό επιλογέα '*'.
Ο επιλογέας κείμενο είναι υλοποιημένος από τη μέθοδο .find(); επομένως, $('li.item-ii').find('li') είναι ίσο με $('li', 'li.item-ii').
Για την jQuery 1.6, μπορούμε επίσης να χρησιμοποιήσουμε τη δεδομένη συλλογή jQuery ή το στοιχείο για την επιλογή. Επίσης η συγκεκριμένη λίστα με στρώματα, πρώτα γράφουμε:
var $allListElements = $('li');
Στη συνέχεια, μεταφέρετε τον συγκεκριμένο αντικειμενο jQuery στη μέθοδο find:
$('li.item-ii').find( $allListElements );
Το παραπάνω κώδικας θα επιστρέψει μια συλλογή jQuery που περιέχει στοιχεία λίστας που ανήκουν στους απογόνους της λίστας II.
Παρόμοια, μπορείτε επίσης να μεταφέρετε ένα στοιχείο:
var item1 = $('li.item-1')[0]; $('li.item-ii').find( item1 ).css('background-color', 'red');
Το αποτέλεσμα της συγκεκριμένης κλήσης είναι ότι το έργο 1 έχει οριστεί με φόντο κόκκινο.