Autor Zpráva
Dell
Profil *
Zdravím, potřeboval bych nějako v javascriptu zjistit zděděné třídy daného elementu, tedy například mám:

<div class="hlavni">
    <div class="podtrida">
        <span onclick="alert(....?)">bla bla</span>
   </div>
</div>
A v tom alertu chci nějak vidět že ten span patří pod třídu hlavní -> podtřída... tedy kdybych ho chtěl zaměřit přímo v css tak by to vypadalo takhle: ".hlavni .podtrida span" a tohle chci nějak vytáhnout tím javascriptem.
díky
Darker
Profil
Projdeš všechny nadřazené elementy cyklem. Nadřazený element je vlastnost elementu zvaná parentNode.
Keeehi
Profil
this - tento oběkt
parentNode - rodič
className - třída

this.parentNode.parentNode.className = hlavni
this.parentNode.className = podtrida
Dell
Profil *
Keeehi:
To byl pouze příklad, ve skutečnosti budou všechny ty elementy stylované pomocí css souboru a nebudou mít nic v class="" ze kterého to ten className tahá. Něco jako getComputedStyle akorát se seznamem jmen tříd místo seznamem samotnýho prvků stylu.
Keeehi
Profil
Dell:
nebudou mít nic v class“ a „seznamem jmen tříd“ si trochu odporuje nemyslíš? Neboli pokud nepoužiješ třídy, pak je seznam tříd přece prázdný.
Darker
Profil
Dell:
stylované pomocí css souboru a nebudou mít nic v class=""
A jaké selektory používáš, když tam není className?
Udělal jsem mezitím tohle, pokud mi někdo chytrý poví, proč mi kliknutí probublává, opravím to.
Keeehi
Profil
Darker:
cancelBubble je pro IE, pro ostatní prohlížeče je to stopPropagation()
function preventbubble(e){
 if (e && e.stopPropagation)
  e.stopPropagation()
 else
  event.cancelBubble=true
}
+ JS je case-sensitive, takže i v cancelBubble máš chybu.

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