ახლა კოდში ელემენტების მოპოვების ძალიან ბევრი ხერხი იცი.
და ისინი ძალიან ხშირად გამოგადგება.
მაგრამ კიდევ ერთი უნდა ისწავლო, რეალურად, ყველაზე მაგარი:
ელემენტების მოძებნა CSS სელექტორზე დაყრდნობით.
გახსოვს CSS სელექტორები?
ესე იგი, თეგის სახელით ძებნა,
ID-ით ძებნა,
ან კლასის მიხევით ძებნა.
მაგრამ კიდევ უფრო დახვეწილი სელექტორებიც არსებობს.
მაგალითად, კლების სელექტორი, ატრიბურის, კლასი + ელემენტი...
კარგი იქნებოდა, რომ გაგეხენებინა CSS სელექტორები,
თუ არ გახსოვს.
მაგალითად, მინდა შევუცვალო სტილი მხოლოდ ელემენტებს
კლასიდან "animal/ცხვოელი" და მდებარეობით პარაგრაფის შიგნით.
ჩავწეროთ თეგი
შემდეგ კი ჩავწეროთ p
და გამოვტოვთო ერთი ადგილი, ასე ვაჩვენებთ რომ ვეძებთ პარაგრაფებში
შემდეგ .animal, რომ ვაჩენოთ: ვეძებთ ყველა ელემენტს
კლასიდან "animal"
და... უბრალოდ გამოვყოთ ისინი წითლად.
მშვენიერია.
შემიძლია გამოვიყენო იგივე CSS სელექტორი ელემენტების JavaScrip-ში საპოვნელად
მეთოდით `document.querySelectorAll()`
ახლა მე შევცვლი ამ ხაზს.
CSS სელექტორი უნდა ჩავსვა, როგორც არგუმენტი
როგორც ცალკე ხაზი ბრჭყალებში.
პარაგრაფი ისევ კატების შესახებაა..
ამ ფუნქციაში ნებისმიერი CSS სელექტორის ჩასმა შეგიძლიათ;
ის დაგიბრუნებთ ელემენტების კოლექციას
და მერე მათი ციკლის შექმნა შეგიძლიათ.
გახსოვს, როგორ ვთქვით მაშინ,
რომ `getElementsByTagName()` აბრუნებს HTML კოლექციას,
რომელიც ჰგავს მასივს?
ეს მეთოდის აბრუნებს `NodeList`-ს, რომელიც ასევე ძალიან ჰგავს მასივს,
იმით, რომ შეგვიძლია გამოვიყენოთ ფრჩხილები, გაზომო სიგრძე და ა.შ.
და თუ NodeList-ს და HTMLCollection-ს შორის სხვაობას დიდად ვერ შეამჩნევთ,
თუ ამ ორ მეთოდს იყენებთ.
მაგრამ შეგიძლია დაძებნო მათ შესახებ მეტი ინფორმაცია, თუ გაინტერესებს.
კიდევ არსებობს მეთოდი, რომელიც დაძებნის CSS სელექტორებში
და დააბრუნებს მხოლოდ ერთ ელემეტს,
თუ შენი CSS სელექტორი მხოლოდ ერთს აბრუნებს
სინამდვილეში, ის ძალიანაც სასარგებლო არ არის
იმიტომ რომ ძირითადად თუ ერთ ელემენტს ეძებ მაშინ ID გაქვს,
მაგრამ მაინც გაჩვენებ, ყოველი შემთხვევისთვის
`getElementById`-ის მაგივრად შემიძლია ვთქვა
`document.querySelector("`
და მერე, იმისთვის, რომ ნამდვილი ძებნა გამოვიდეს და მოგვცეს ID, უბრალოდ დავუმატებ #-ს
აი.
როგორც ხედავ, ეს მართლა ჰგავს `querySelectorAll()`-ს
ოღონდ მხოლოდ ერთ ელემენტს ვირჩევთ, ამიტომ უბრალოდ `querySelector()' გვაქვს
და ვსვამთ მასში იმ CSS სელექტორს, რომლის ერთ ელემტსაც ვეძებთ.
როდის შეიძლება გამოიყენო ეს მეთოდები?
პირველები უფრო ეფექტურია ხოლმე
ამიტომ გირჩევ, ყოველთვის გამოიყენო, როცა კი შეძლებ.
მაგრამ თუ კომპლექსური CSS სელექტორი გჭირდება
და ესენი არ გამოდგება, მაშინ `querySelectorAll()` გამოიყენე.
სცადეთ ამის გაკეთება შემდეგ ამოცანაში.
და მოემზადეთ - ვებ-გვერდზე მუშაობის კიდევ რამდენიმე მეთოდს უნდა გაეცნოთ.