Další koncepční video! Toto je „jen jedna z těch věcí“, kterým musíte v jQuery rozumět. Ve skutečnosti je to pro jQuery trochu jedinečné, protože jiné populární knihovny JavaScriptu to v minulosti nedělaly.
Selektorů jsme již docela dost pokryli. Například již víte, že $("p")
budou vybrány všechny odstavce na stránce. Nejen první nebo nějaký náhodný, všechny. Můžete si snadno představit, že jich na stránce může být mnoho. Nyní si představte, co se stane, když to uděláte:
$("p").hide();
Všichni se schovávají, že? Že jo. Ne první nebo nějaký náhodný, všechny. Tato implicitní iterace . V zákulisí jQuery automaticky prochází celou sadou nalezených prvků a spouští metodu, kterou jste na nich vybrali. K tomu doslova nemusíme psát smyčku. Zdá se docela zřejmé, pokud jste úvodem do JavaScriptu, je jQuery, ale mnoho knihoven v minulosti od vás vyžadovalo, abyste sami procházeli kolekce prvků.
Pokud chcete, můžete smyčku napsat sami. To by snad vypadalo takto pomocí metod opakování jQuery:
$("p").each(function() ( $(this).hide(); ));
To je skoro totéž. Ne nutně, ale můžete. To je explicitní iterace .
Někdy musíte provést explicitní iteraci. V podstatě, pokud potřebujeme získat přístup k hodnotě this
a udělat s ní něco zvláštního, budeme potřebovat vlastní konstrukci smyčky, se kterou budeme pracovat.
Příkladem v tomto screencastu bylo počítání znaků v položkách seznamu a jejich přidání na konec řetězce. K tomu budeme potřebovat výslovnou iteraci.
Podívejte se na pero 4b53b9f55662d0d26339e18277500eee od Chris Coyier (@chriscoyier) na CodePen
Použili jsme zde metodu each () jQuery, která je ideální pro to, co potřebujeme. Užitečný bit, který pro nás dělá, je, že nám dává nulové indexované počítadlo s každou iterací, ke které můžeme v případě potřeby přistupovat.
$(".there-are-three-of-me").each(function(i) ( console.log(i); )); // 0 // 1 // 2