Autor Zpráva
dedek
Profil *
Ahoj, jak se dá udělat zápis v CSS pro všechny ID v tomto html
<h1 id="my-1">Jedna</h1>
<h1 id="my-2">Dva</h1>
<h1 id="my-2">Tři</h1>
abych nemusel v css psát
#my-1, #my-2, #my-3 {color:red;}
Neexistuje něco jako
#my-[*] {color:red;}
Díky
RastyAmateur
Profil
dedek:
Náhodou existuje, ale moc nechápu, na co by to mohlo být třeba... Proč tomu nepřidat nějakou třídu?
dedek
Profil *
Díky, proč tomu nepřidám třídu? No bylo by to samozřejmě lepší a jednodušší, ale potřebuji posléze v JS získat při tom procházení ta ID, což když budu v JS procházet podle class, tak ta ID nezískam, ne?

<h1 id="my-1" class="sez">Jedna</h1>
<h1 id="my-2" class="sez">Dva</h1>
<h1 id="my-2" class="sez">Tři</h1>
RastyAmateur
Profil
dedek:
Můžeš v JS pak použít metodu getAttribute() a pak normální práci s řetězci. Ale jako netvrdím, že je to také ideální řešení. Asi záleží, co chceš dělat a co tobě vyhovuje. Já se třeba ta IDčka snažím opravdu využívat pouze pro javascript opravdu jako identifikátor konkrétního elementu, o kterém 100% vím, že tam je, kde tam je a proč tam je. Pokud automaticky generuješ nějaký seznam věcí a potřebuješ v určitém okamžiku jejich identifikátor, řešil bych to tím, že si ten identifikátor dám například do atributu data-id="..." a pak si ho odsud vytáhnu.

Ale vážně záleží na konkrétním problému. Ty jsi se prve ptal na CSS a nyní už se tu bavíme o JS.
Tomášeek
Profil
dedek:
Ono hlavně motáš jabka a hrušky. Element může mít ID a CLASS současně, můžeš ho zaměřit kontextem, atd.

Pokud budeš procházet pomocí tříd, tak i v JS id samozřejmě získáš.

document.getElementsByClassName('sez')[0].id // kde misto indexu 0 budes mit asi cyklus for a pouzijes iteracni promennou

Případně, pokud se jedná o všechny nadpisy (všechny alespoň v rámci daného kontextu - společného rodiče), pak:
- v CSS jednoduše h1 {...}, případně kontext h1 {...}
- v JS obdobne: document.getElementsByTagName('h1')[i].id
dedek
Profil *
A jak dostanu ID 'list-1' pokud kliknu na pložku 'Jedna', nebo ID 'list-3' pokud kliknu na pložku 'Osm'?
<div id="list-1">
<p class="a" onclick="Myfnv(this)">Jedna</p>
<p class="b" onclick="Myfnv(this)">Dva</p>
<p class="c" onclick="Myfnv(this)">Tři</p>

<div id="list-2">
<p class="a" onclick="Myfnv(this)">Čtyři</p>
<p class="b" onclick="Myfnv(this)">Pět</p>
<p class="c" onclick="Myfnv(this)">Šest</p>

<div id="list-3">
<p class="a" onclick="Myfnv(this)">Sedm</p>
<p class="b" onclick="Myfnv(this)">Osm</p>
<p class="c" onclick="Myfnv(this)">Devět</p>



Chybí tam uzavření </div> ..
RastyAmateur
Profil
dedek:
Node.parentElement by nestačil? Za předpokladu, že to </div> má být až za odstavcemi, ne samostatný element před nimi...
Tomášeek
Profil
dedek:
this.parentNode.id

RastyAmateur:
Ty neuzavřené divy jsou překlep tady v kódu. I kdyby ne, tak rodič (nejbližší element o úroveň výše) je pořád ten nejblíže otevřený div.
RastyAmateur
Profil
Tomášeek:
I kdyby ne, tak rodič (nejbližší element o úroveň výše) je pořád ten nejblíže otevřený div.
On se pod tím ještě opravil, že tam chybí </div>. Já jsem se ale bál, jestli by nezplodil něco typu:
<div id="list-1"></div>
<p class="a" onclick="Myfnv(this)">Jedna</p>
...
dedek
Profil *
No správně to je takto

<div id="list-1">
<p class="a" onclick="Myfnv(this)">Jedna</p>
<p class="b" onclick="Myfnv(this)">Dva</p>
<p class="c" onclick="Myfnv(this)">Tři</p>
</div> 

<div id="list-2">
<p class="a" onclick="Myfnv(this)">Čtyři</p>
<p class="b" onclick="Myfnv(this)">Pět</p>
<p class="c" onclick="Myfnv(this)">Šest</p>
</div> 
 
<div id="list-3">
<p class="a" onclick="Myfnv(this)">Sedm</p>
<p class="b" onclick="Myfnv(this)">Osm</p>
<p class="c" onclick="Myfnv(this)">Devět</p>
</div> 
RastyAmateur
Profil
dedek:
Tak to už jsme ti poradili :-)
dedek
Profil *
Tak jdu studovat, dík.
Kajman
Profil
Z funkce Myfnv se tam spíše dostanete přes
nazevPrvnihoParametruFunkceMyfnv.parentNode.id

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0