Autor Zpráva
mattyZEM
Profil
Dobrý večer,

mám dotaz ohledně změnění stylu třídy. Například po kliknutí na odkaz, nastavit všem objektům které mají třídu "test" vlastnost background na black. Nejlépe pokud by šlo třídu úplně zrušit, nebo přepsat, jelikož používám i :hover efekt.

Vím jak upravit ID, ale to mi bohužel nepomůže.

Předem děkuji za všechny rady a tipy.
Nox
Profil
Věty moc nechápu, měnit definice tříd asi z JS přímo nejde, leda možná vložením style tagu, ale to nevim jestli by fungovalo

Každopádně bys měl pracovat s třídama a ne přímo vlastnostma

Po kliknutí na odkaz prostě přidej všem požadovaným objektům třídu, která zajistí požadovanou změnu vzhledu
mattyZEM
Profil
Nox:
Po kliknutí na odkaz prostě přidej všem požadovaným objektům třídu, která zajistí požadovanou změnu vzhledu
Ok, to je dobrý nápad. Ale jak přidat tu požadovanou třídu? :)

Promiňte, ale v JS jsem laik. Základy (dost malou část) znám, ale co se týče tohoto jsem ztracen.

Prostě potřebuji změnit / zrušit / přidat třídu k něčemu co má třídu test, popř. upravit styl třídy test + i upravit :hover styl třídy test. Napsal jsem to dost srozumitelně?
panther
Profil
mattyZEM:
vláken, kde jsou kódy s přidáním třídy je tu poslední dobou dost, tak hledej (className).

popř. upravit styl třídy test + i upravit :hover styl třídy test.
normální i :hover stav zajistíš normálně pomocí CSS, kde bude ostylovaná ta nově přidaná třída. Současné zůstane beze změn.
mattyZEM
Profil
panther:
tak hledej (className).
Hledal jsem pod "změna třídy", nebo i "změna stylu třídy" ale bohužel jsem došel k závěru že jsem k žádnému nedošel :).

Po více než 20ti minutovém hledání (ovšem, není to sice mnoho) jsem tedy dostal informace jen o tom, že je tady možná dost témat s getElementsByClassName, ale můj problém to nijak neřeší. Pan jahoda (bez urážky) mi tedy řekl v tomto tématu to, co jste mi řekli Vy.

Tedy, pro pořádek. Našel jsem funkci addClassName(), načež mi ihned strejda google poradil toto. Je to to, co jste mysleli? Jelikož toto mi nijak nepomůže :( :-).
panther
Profil
mattyZEM:
https://developer.mozilla.org/En/DOM/element.className, sem vede odkaz z Jushe z místní diskuse.

Když ti i Str4wberry psal className, asi je zřejmé (i dle velikosti písmen), že to je (resp. je tím míněno) něco jiného než addClassName nebo getElementsByClassName.

EDIT: Hned první odkaz v googlu na výše zmíněný výraz vede na týž odkaz, co uvádím o pár řádek výše.
mattyZEM
Profil
panther:
https://developer.mozilla.org/En/DOM/element.className
A teď jsem z toho jelen.

Takže musím mít například
<p id="test1" class="test">Něco</p>
<p id="test2" class="test">Něco</p>
<p id="test3" class="test">Něco</p>
<p id="test4" class="test">Něco</p>
a pak
var idcko=document.getElementById("test1");
if(idcko.className=="test") {
  idcko.className="";
}else {
  goNextElement();
}

Je to tak, nebo jsem něco opět nepochopil?
panther
Profil
mattyZEM:
Takže musím mít například
snadno si můžeš zkusit, ale ano, takhle třídu odebereš. Přijdeš tím o styly této třídě přiřazené, raději bych přidával druhou třídu, jejíž styly by tu současnou mohly přebíjet.
Velda
Profil
panther:
raději bych přidával druhou třídu
zase perlíš? :D
Přijdeš tím o styly této třídě přiřazené
to asi taky bude účelem :D
panther
Profil
Velda:
buď tak laskav a uklidni se, nikdo není na ty tvoje přitroublé reakce zvědavý. Napsal jsem, že to možné je.

Sám jsi chytrej jak rádio, nemám se s tebou o čem bavit. Dál budu tvoje příspěvky ignorovat.
Velda
Profil
panther:
jasně, tagu jdou nastavit 2 třídy, aplikuje se sice jenom ta první, ale to už je přeci detail :D
panther
Profil
Velda:
tagu jdou nastavit 2 třídy, aplikuje se sice jenom ta první
ehm? A pak, kdo tu perlí, že? Měl bys začít u základů HTML&CSS a pak se ofrňovat na ostatní.

Například HTML zdroj této stránky, ř. 47:
<div class="postinfo right"><script type="text/javascript">getQuotation();</script></div>

Vidím dvě třídy, obě se evidentně aplikují.

Nešiř tu, prosím, bludy a informace si ověřuj, když je neznáš ve správném znění z paměti.


Pokud jsi myslel CSS zápis (o kterém tu mimochodem řeč nebyla) se dvěma třídami, a sice:
.trida1.trida2 {}
tak ten funguje všude vyjma IE6, který stejně opomíjíš díky <video>, takže je to stejně jedno.
Velda
Profil
panther:
tak to se hluboce omlouvám, tohle sem nevěděl... ;P
ale následná změna className by už nebyla tak primitivní :P
vyjma IE6, který stejně opomíjíš díky <video>
vskutku :P
panther
Profil
Velda:
tak to se hluboce omlouvám, tohle sem nevěděl... ;P
tak příště, až budeš něco psát a do někoho se navážet, piš jen ověřené a správné informace. Děkuji.

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