Autor Zpráva
Annie
Profil
var counter = 0;
$(".question:nth-child("+(++counter)+")").show();

Dělám nějaký kvíz a chci aby se mi pokaždé zvýšilo nth-child a podle toho se ukázal další div... jde to takhle řešit? nejsem si jistá, jestli je to ++counter takhle správně
Kcko
Profil
Eh? Živá ukázka? Co myslíš, že se stane? bude to volat nth-child(1) a dál už nic, vybere ti první .question. K čemu to je?
Annie
Profil
To je jen část - šlo o to, jestli se takhle použitý to counter s tím ++ bude zvyšovat, jako jestli se to dá takhle zapsat..
Tomáš123
Profil
Annie:
A prečo to ukazovať cez CSS? Zmenu aj tak zaisťuje JS. Cez CSS je to zbytočná obchádzka so slabšou podporou.
Annie
Profil
Možná je to zbytečné, ale mě to prostě zajímalo takhle s CSS :))
Joker
Profil
Tomáš123:
Vždyť v té ukázce to není přes CSS, ale přes JavaScript.

Ale připadá mi to zbytečně složitá konstrukce.
Nevím, jak přesně je to v jQuery, ale v prostém JS bych ten prvek zaměřil nějak takhle:
var questions = document.querySelectorAll(".question");
var toCoMeZajima = null;
if (counter < questions.length) /* pokud counter není za posledním prvkem */
{
  toCoMeZajima = questions[counter];
}
 
MartinP_
Profil *
Místo :nth-child můžeš použít jQuery funkci .eq().
var counter = 0; 
$(".question").eq(++counter).show();

Živá ukázka

Kdybys to chtěl bez jQuery, tak se dá Jokerův köd ještě zkrátit:
var toCoMeZajima = document.querySelectorAll(".question")[++counter] || null;
Tomáš123
Profil
Joker:
Narážal som na nth-child. To je v JS? Myslel som, že Annie mení JavaScriptom CSS selektor.
Joker
Profil
Tomáš123:
Narážal som na nth-child. To je v JS?
Ano, je to v JS.
Metody querySelector, querySelectorAll a potažmo jQuery umožňují vybírat prvky DOMu přes selektory podobné CSS selektorům.
Resp. podle specifikace pokud prohlížeč umí DOM i CSS selektory, měl by podporovat v obou případech stejné. Ale je tam jen normativní SHOULD, ne MUST.

MartinP:
se dá Jokerův köd ještě zkrátit
Určitě, akorát mi to přišlo pro začátečníka špatně srozumitelné, takže jsem to napsal „ukecaně“.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0