Autor Zpráva
vlpospa
Profil
Co je to Id? a naco je důležité, teda pokud je důležité.
Wan-To
Profil *
ID označuje nějaký HTML prvek jedinečným identifikátorem. Používá se ve standartu W3C DOM (tedy i v JS, který ho podporuje) a k prvku můžeš přistupovat pomocí metody Element getElementById(String id). Zní to složitě, ale je to úplně primitivní...
Honza Hučín
Profil
Id je důležité i pro používání kaskádových stylů. Pokud je element označen atributem id (např. <div id="prvek">), může se mu ve stylopisu přiřadit styl takto:

#prvek {popis stylu}
Wan-To
Profil *
Ještě bych dodal, že někdy je pro použití CSS vhodnější použít atribut class, pak se styl přiřazuje pomocí slektoru začínajícím znakem '.':

.třída {popis stylu}

Příklad: potřebuješ vytvořit tlačítka v menu, která budou mít určitý font, obrázkové pozadí atd. Nemůžeš použít atribut ID, protože ID je jedinečné, ale tlačítek je víc než jedno. V tomto případě se používá CLASS, ten totiž jedinečný není.
mat
Profil
shrnu to (co se týče css):

atribut id se přiřazuje prvku, který je v dokumentu jedinečný - např. patičku, kterou obvykle vkládáš pouze jednou můžeš označit atributem id - ve stylopisu pak bude #paticka {nějaké definice}.

Jestliže ale chceš vložit do jednoho dokumentu více stejně formátovaných prvků (např. prvek "vpravo", který ti všechen obsah uvnitř zarovná vpravo), musíš (měl bys) použít atribut class - ve stylopise pak budeš mít .vpravo {text-align: right nebo něco podobného}.

Rozdíl mezi class a id je v css tedy ten, že prvek s id může být použit v dokumentu pouze jednou, kdežto s class neomezeně mnohokrát.

Pokud tápeš, kdy použít id a kdy class, používej klidně jen class, tím myslím nic nezkazíš...
Glacier
Profil
měl bych dotaz, lze použít v class v JS??????Nebo musím použít id.
Martin Kuželka
Profil
Afaik můžeš v JS použít i třídy.
Fred
Profil
Řekl bych, že si na použití tříd javascriptem musíš napsat funkci, normálně to nejde. Nicméně Simon Wilson již něco takového napsal getElementsBySelector demo
getElementsBySelector článek
Wan-To
Profil *
Standart W3C DOM obsahuje funkci Element[] getElementsByAttribute(). Možná, že jsem název napsal špatně, ale jsem si jistý, že podobná funkce tam je. Pak je možné zavolat něco takového:
document.getElementsByAttribute("class", "jméno třídy") a vrátí to pole všech prvků s class = jméno třídy.
Fred
Profil
To se pleteš je to getAttribute("class", "jméno třídy") a nejdřív k tomu atributu musíš nějak přistoupit tzn.
document.getElementById(id).getAttribute("class", "jméno třídy") . Možná by šlo něco jako document.getElementById(id).document.getElementsByTagName(*).getAttrib ute("class", "jméno třídy") kde id je id body * jsou všechny tagy tím chci říct, že normálně se napřímo ke třídě nedostaneš, potřebuješ nějaké id
Wan-To
Profil *
Já to znám z knihy JavaScript - kompletní průvodce, a jsem si jistý, že tam něco takového je. Ale ještě se doma podívám...
Fred
Profil
Sorry za japonštinu, nikde není nic kompletnějšího http://tomizawa-web.hp.infoseek.co.jp/method.htm nevidím to tam
Wan-To
Profil *
Tak ta funkce, kterou jsem tu popisoval neexistuje. Když se nad tím zamylím, jaký má vlastně význam pracovat se všemi prvky určité třídy??? Myslím, že pokud někdo nebude psát nějaký extra-složitý program, tak žádný.
Fred
Profil
Je to praktické, když chceš třeba změnit vlastnosti všech prvků s class=něco . Normálně by jsi musel buď všem přidat nějaké id, nebo by to musely být totožné tagy opouzdřené divem s nějakým id. Takže buď spousty zbytečných ídéček, nebo omezení na jeden tag uzavřený v divu. S tím scriptem Simona Wilsona můžeš přistoupit v podstatě k čemukoliv, na slayeroffice.com šel autor ještě dál a napsal funkci document.getElementsByWhatever
demo , takže s tím už můžeš manipulovat s čímkoliv, samozřejmně se to vyplatí jen když by jsi potřeboval mraky ídéček, nebo potřebuješ manipulovat s velmi různými prvky. Poslední dobou to dělám tak, že dám id do body a do prvků s kterými potřebuju něco dělat dám neškodné rel="js" (sice to není zrovna košér, ale validátoru to neva) a pak už se k nim nějak dostanu.
Toto téma je uzamčeno. Odpověď nelze zaslat.