დავბრუნდით მე და ჩემი გვერდი ძაღლების შესახებ
და მე ვაპირებ გამოვიყენო JavaScript
და DOM api იმისთვის, რომ ეს გვერდი
კატების შესახებ გვერდად გადავაქციო.
მგონი, ამ ოთახში სპილოა და მე ვცდილობ
არ მივაქციო მას ყურადღება..
რეალურად, ოთახში ძაღლია, უფრო სწორად - ორი,
კიდევ უფრო სწორად - ძაღლების სურათებია.
კატების შესახებ გვერდზე ძაღლების სურათები
ვერ მექნება. უნდა ჩავანაცვლო ისინი რამით.
დავიწყოთ სურათების ძებნით. ვეძებთ
თეგის სახელით.
`var imageEls =
document.getElementsByTagName("img");`
ახლა, რადგანაც ეს ბევრ ელემენტს გვიბრუნებს,
მათ შორის ბრძანების გასამეორებლად
უნდა გამოვიყენოთ ციკლი for
`var i = 0; i < imageEls.length; i++`
მაგრამ რა უნდა ჩავსვა ციკლში?
მე ვერ შეცვლი სურათ-ელემენეტბს, თუ
ისინი იყენებენ innerHTML-ს, იმიტომ რომ
სურათების თეგები არ შეიცავენ innerHTML-ს.
მე უნდა შევცავლო ის, რის გამოც ამ სურათებზე
გამოსახულია ძაღლები --
სურათების URL , რაც განისაზღვრება
ყოველი თეგის src ატრიბუტში.
ელემენტების ატრიბუტები . ნოტაციით იცვლება.
მოდი, გაჩვენებ.
გადავდივართ მიმდინარე ელემენტზე,
ნოტაციით ფრჩხილებში, ვსვამთ წერტილს
და ვსვამთ HTML ატრიბუტის სახელს როგორც
JavaScript თვისების სახელს -- src -- უდრის
და აქ ვსვამთ ახალ მნიშვნელობას;
ჯერ ცარიელი ხაზი იყოს.
ხედავ? სურათები გაქრა.
იმიტომ რომ ცარიელი ხაზი
არ მიუთითებს საერთოდ არანაირ სურათზე.
იმისთვის, რომ ახალი URL ჩავსვა,
ვაკოპირებ აქ ძველს
და ფაილის სახლეს ვცვლი კატაზე;
ასე მოხდა, რომ ვიცი
რომ სწორედ ასეთია ხანის აკადემიაზე
კატის სურათის URL
გამოვიდა! ძაღლები კატებად გადაიქცა და
ჩვენი კატიფიკაცია თითქმის დასრულდა.
ხედავთ კიდევ რაღაცას, რაც ძაღლებთანაა
კავშირში? თითქმის შეუმჩნეველია,
მაგრამ რაღაც დაგვრჩა - ესაა ვიკიპედიის
ბმული, რომელიც გადადის ძაღლების გვერდზე.
და თუ მომხმარებელი გადავა ამ ბმულზე,
იგი მიიღებს ინფორმაციას ძაღლებზე.
მე კი მინდა, რომ მან კატებზე წაიკითხოს.
როგორ ვიპოვო ეს ბმული JavaScript-ში?
შემიძლია მივცე ამ ბმულს ID
და გამოვიყენო getElementById
ან შემიძლია გამოვიყენო getElementsByTagName
და შევცვალო ყველა ბმული გვერდზე.
ან, სუპერ-მონდომებული თუ ვარ,
CSS სელექტორით შემიძლია ვიპოვო ყველა
ის ბმული, რომელიც ძაღლებიან გვერდზე გადადის.
ახლა გაჩვენებ CSS სელექტორს, რომელსაც
გამოვიყენებ აქ, თეგში
ეს CSS სელექტორი იპოვის ყველა ბმულს,
რომელიც რამე კავშირშია ძაღლებთან.
პირველ რიგში უნდა ჩავწერო a,
იმიტომ რომ ვეძებ ბმულებს.
შემდეგ კი ჩავწერ [href*="Dog"]
ეს აცნობებს CSS-ს, რომ უნდა იპოვოს ყველა
ბმული, რომელიც შეიცავს სიტყვას "Dog"
შემდეგ კი შევცვალოთ მათი ფერი იასამნისფერზე.
მზადაა.
კარგი მეთოდია, არა?
ეს არის ატრიბუციის სელექტორი
და ის ძალიან გამოსადეგია, როცა დოკუმენტში
სპეციფიკური რაღაცების პოვნა გინდა.
ახლა ამის JavaScript-ში საპოვნად
შეგვიძლია გამოვიყენოთ document.querySelectorAll
ვუთითებთ var linkEls = document.querySelectorAll
და ვსვამთ შედეგს სელექტორში.
მთავარია, ორმაგი ბრჭყალები არ დაგვრჩეს.
ესეც ასე. კარგი ხაზი გამოვიდა.
ახლა ამათშიც უნდა გავიმეოროთ ბრძანება,
ანუ, ისევ უნდა შევქმნათ ციკლი --
ალბათ, უკვე შეეჩვიე ციკლების შექმნას --
ჩვენ გვინდა, რომ ყოველი ბმული შეიცვალოს
ვიკიპედიის კატების შესახებ სტატიის ბმულით.
ამისთვის ჩავწეროთ linkEls[i].href --
იმიტომ რომ ეს არის იმ ატრიბუტის სახელი,
რომელსაც ვცვლით -- უდრის
ჩავსვათ აქ ეს URL და შეცვალოთ ის კატებზე.
იმიტომ რომ დარწმუნებული ვარ,
რომ სტატიის URL ზუსტად ეს იქნება.
მორჩა, სამყაროს კატიფიკაცია დასრულებულია.
მაგრამ JavaScript-ის სწავლა ჯერ არ დასრულებულა.