Untuk memahami proses pelaksanaan Compile Sizzle, anda perlu memahami fungsi dan pembolehubah utama dan fungsi setiap subrutin yang terlibat. Saya akan menerangkan kod Compile versi jQuery-1.10.2 satu persatu tolong awak.
elementMatcher(padan)
1. Kod sumber
2. Fungsi
Fungsi ini mengembalikan fungsi untuk menentukan sama ada elem yang masuk sepadan dengan pemadanan tatasusunan fungsi pelaksanaan yang sepadan. Jika tidak, ia mengembalikan palsu, jika tidak ia mengembalikan benar.
Jika pemadan hanya mempunyai satu elemen, kembalikan elemen itu sendiri, jika tidak, kembalikan fungsi baharu - fungsi fungsi(elemen, konteks, xml) dalam kod.
Kesan fungsi pulangan agak serupa dengan context.filter(selectors) Sudah tentu, hasilnya hanya mengembalikan benar atau salah, bukan objek jQuery.
3. Parameter
penjodoh - tatasusunan, setiap elemen ialah fungsi pelaksanaan penjodoh kelas bukan pseudo. Contohnya: Semasa proses pelaksanaan sebenar, div.map span:lt(10), fungsi pelaksanaan padanan div dan map akan dihantar ke dalam fungsi elementMatcher sebagai dua elemen pemadan untuk menapis sama ada nod induk bagi nod span memenuhi keperluan.
4. Kembalikan fungsi
4.1 Jika pemadan mempunyai lebih daripada 1 elemen, fungsi berikut akan dikembalikan:
4.1.1 Fungsi
Padanan dipanggil secara berurutan dari elemen terakhir ke elemen pertama untuk memadankan sama ada nod elem masuk memenuhi keperluan Benar dikembalikan jika semua dipenuhi, jika tidak palsu dikembalikan.
4.1.2 Parameter
elemen - elemen nod tunggal untuk diperiksa.
konteks - nod konteks yang melaksanakan keseluruhan padanan rentetan pemilih, selalunya ia tidak berguna.
xml——Adakah objek carian semasa adalah dokumen HTML atau XML Jika ia HTML, parameter xml adalah palsu.
4.2 Jika pemadan hanya mempunyai 1 elemen, kembalikan elemen itu sendiri.
4.2.1 Fungsi
Menyemak sama ada elem masuk sepadan dengan pemilih, mengembalikan benar jika sepadan, jika tidak mengembalikan palsu.
4.2.2 Parameter
Sama seperti 4.1.2 perihalan parameter.