2012-01-23 17 views
16

Następujący selektor $('.sub_menu_container',this) ma 2 parametry, selektor, który chcesz wyszukać, i drugi. W tym przypadku jest to this. Jaki jest pożytek z dodania tego drugiego parametru? Przeszukuję dokumenty jquery, ale nie znalazłem niczego, co mogłoby mi pomóc. Czy to jakiś rodzaj odniesienia?Selektor z 2 parametrami

+0

Możesz zobaczyć go równie dobrze jak z rodzicem takim jak: $ ('. Sub_menu_container', rodzic) –

Odpowiedz

17

drugi param zapewnia kontekst, w których szukać elementu dopasowane przez pierwszy selektor

4

Jaki jest pożytek z dodania drugiego parametru?

Jako documentation wyjaśnia:

Domyślnie selektorów wykonywania swoich wyszukiwań w DOM począwszy u podstaw dokumentu. Jednak alternatywny kontekst można podać dla wyszukiwania za pomocą opcjonalnego drugiego parametru do funkcji $().

Wewnętrznie kontekst selektora jest realizowany za pomocą metody .find(), , więc $ ("span", to) jest równoważne $ (this) .find ("span").

+0

Ma taki sam _efekt_ jak użycie '.find()', ale zapisuje wywołanie funkcji. –

14

jej po prostu lubię:

$(this).find('.sub_menu_container') 

jego kontekst re-format kodu.

to wszystko :)

+0

p.s. i jest szybszy. –

2

Drugi parametr to zakres do wyszukiwania. Oznacza to, że jQuery szuka pierwszego selektora z drugim selektorem.

8

Drugi parametr dopasowuje selektor, tak aby wyszukiwał tylko wewnątrz kontekstu elementu podanego w drugim parametrze. Jest to zasadniczo to samo, co powiedzenie $(this).find('.sub_menu_container');.