jQuery-Through - find() -Methode
Beispiel
Suchen Sie alle Nachkommen span-Elemente in den Absätzen und setzen Sie deren Farbe auf rot:
$("p").find("span").css('color','red');
Definition und Verwendung
Die find() -Methode ermittelt die Nachkommen jedes Elements in der aktuellen Element集合 durch Auswahlkriterien, jQuery-Objekte oder Elemente.
Syntax
.find(selector)
Parameter | Beschreibung |
---|---|
selector | Zeichenkette, die den Selector-Ausdruck enthält, der für die Übereinstimmung mit der aktuellen Element集合 bestimmt wird. |
Detaillierte Erklärung
Wenn ein jQuery-Objekt gegeben ist, das eine Sammlung von DOM-Elementen darstellt, ermöglicht die .find() -Methode, in der DOM-Baum nach diesen Elementen zu suchen und einen neuen jQuery-Objekt mit den übereinstimmenden Elementen zu konstruieren. .find() ähnelt der .children() -Methode, der Unterschied ist, dass die letztere nur eine Ebene im DOM-Baum hinuntergeht.
.find() -Methode hat das erste markante Merkmal, dass sie den Selector-Ausdruck annimmt, der dem Typ entspricht, den wir an die Funktion $() übergeben. Es wird durch das Testen, ob die Elemente dem Ausdruck entsprechen, die Elemente gefiltert.
Bitte überlegen Sie sich die folgende einfache verschachtelte Liste:
<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>
We will start from the list II to find the list items within it:
$('li.item-ii').find('li').css('background-color', 'red');
The result of this survey is that projects A, B, 1, 2, 3, and C have all been set to a red background. Even if project II matches the selector expression, it will not be included in the result; only descendants will be matched.
Unlike other tree traversal methods, a selector expression is a required parameter for .find(). If we need to retrieve all descendant elements, we can pass the wildcard selector '*'.
The selector context is implemented by the .find() method; therefore, $('li.item-ii').find('li') is equivalent to $('li', 'li.item-ii').
For jQuery 1.6, we can also use the given jQuery collection or element for filtering. For the nested list above, we first write as follows:
var $allListElements = $('li');
Then pass this jQuery object to the find method:
$('li.item-ii').find( $allListElements );
The above code returns a jQuery collection containing list elements that are descendants of the list II.
Similarly, you can also pass an element:
var item1 = $('li.item-1')[0]; $('li.item-ii').find( item1 ).css('background-color', 'red');
The result of this call is that project 1 has been set to a red background.