Autor Zpráva
malek
Profil
zdravim

ako dam vsetkym prvkom s rovnakym clasom akciu naraz. chcem ze ak uzivatel klikne na jeden prvok tak aby sa vykonala nieaka akcia pre vsetky prvky ktore maju isty class :)

napr uzivatl klikne na prvok, ten ma onclick="niekaFce()" a ta nieakaFce napr sfarby vsetky prvky co maju class="sfarby"

da sa to neiak rozumne spravit?
Leo
Profil
JS to v sobe jako vestavenou fci nema, musi to nekdo napsat. Existuje napriklad knihovna cssquery:

http://dean.edwards.name/my/cssQuery/

kde pouzijete normalni CSS selektory. Ovsem predtim, nez se do toho pustite (a uzivatel bude stahovat buhvikolik kB dat navic) uvazte, jestli se ty prvky nedaji charakterizovat jinak (treba je to dana znacka uvnitr jine konkretni znacky), Leo
_dot_
Profil *
Podle me je to pekna blbina, jelikoz class neni jednoznacny identifikator => muze byt se stejnou class vice prvku, kdezto id muze existovat pouze jedno.
Leo
Profil
"Podle me je to pekna blbina, jelikoz class neni jednoznacny identifikator => muze byt se stejnou class vice prvku, kdezto id muze existovat pouze jedno."

No vsak to je taky duvod, proc se class pouziva ne? :-) Leo
Ondra_99
Profil *
Podle me je to pekna blbina, jelikoz class neni jednoznacny identifikator => muze byt se stejnou class vice prvku, kdezto id muze existovat pouze jedno.
O to tam taky de, ze ti to vybere vsechny ty objekty, pres ID ti to vybere jeden, zatimco takto ti to vybere kolekci objektu. Jinak JS to defaultne nema, je opravdu treba pouzit nastavbu, doporucuju jQuery (jQuery.com) je dost dobrej, free a ma velke mnozstvi dalsich pluginu
los
Profil *
Vo väčšine prípadov je použitie getElementsByClassName zbytočné, ako napríklad aj v tomto. Stačí pri kliknutí nastavovať className nadradenému elementu a do CSS doplniť pravidlá pre zafarbenie podradených elementov.
Bobo
Profil *
Tak jsem narazil na podobný problém a našel jsem skvělé a jednoduché řešení:
  function getElementByClass(theClass) {
    var allHTMLTags = new Array();
    //Create Array of All HTML Tags
    var allHTMLTags=document.getElementsByTagName("*");
    //Loop through all tags using a for loop
    for (i=0; i<allHTMLTags.length; i++) {
      //Get all tags with the specified class name.
      if (allHTMLTags[i].className==theClass) {
        //Place any code you want to apply to all
        //pages with the class specified.
        //In this example is to “display:none;” them
        //Making them all dissapear on the page.
        allHTMLTags[i].style.display=’none’;
      }
    }
  }


zdroj: http://www.actiononline.biz/web/code/how-to-getelementsbyclass-in-javascript-the-code/ (pokud to budete kopírovat z odkazu a ne odsud, tak pozor, jsou tam špatné uvozovky, kvůli kterým to nefunguje)

Jinak já to potřeboval v případě, kdy mám ve formuláři několik skupin checkboxů a u některé skupiny chci mít tlačítko, které invertuje výběr. Nemohu zde použít nadřazený element, protože všechny checkboxy jsou v jednom formu, a tudíž by mi to měnilo všechny checkboxy ve formuláři, místo jen těch v dané skupině.

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: