Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
gorri
Člen
Avatar
gorri:2.2.2020 12:09

Ahoj. Snažím se o změnu stylu u

<a id="btnd" onclick="od()">Odkaz</a>

Nicméně na stránce je více prvků s tímto ID a chci je všechny schovat. Respektivě dát jim display: none. Nedaří se. Věděl by někdo o jiném řešení?
V tom onclick je toto

<script>
function od() {
    document.getElementById("btnd").style.display = "none";
}
</script>

Děkuji za případné rady ;-)

Zkusil jsem: Google, stockoverflov, w3school

Chci docílit:

display: none

pro všechny

id="btnd"
Odpovědět
2.2.2020 12:09
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
gorri
Člen
Avatar
gorri:2.2.2020 12:20

Abych nezapomel. Toto reseni schova pouze jeden a to ten prvni div. Ostatni ne :(

Nahoru Odpovědět
2.2.2020 12:20
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
gorri
Člen
Avatar
gorri:2.2.2020 12:53

Tak vyřešeno. Jen co to doladím, vložím zde řešení ;-)

Nahoru Odpovědět
2.2.2020 12:53
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.2.2020 14:03

id je unikatni, jedinecne, jedine v celem dokumentu, proto veta nedava smysl...
"Chci docílit: display: none pro všechny id="btnd" "
Ale ten element muze byt pouze jeden.

Jo, neco jineho je pouzit class.

arr = document.querySelectorAll('.btnd');
// <a class="btnd"> ... </a>
Editováno 3.2.2020 14:04
 
Nahoru Odpovědět
3.2.2020 14:03
Avatar
gorri
Člen
Avatar
gorri:3.2.2020 14:06

Tak jsem si myslel, že už to mám a opět nic. Zadrhnul jsem se v jediné věci. Do js funkce potřebuji dát i něco z PHP. Nicméně nedaří se mi to umístit správně.
Poradil by někdo prosím?

<script>
    var n = <?= htmlspecialchars($blo['id_bloku']) ?>;
function od+n() {
    document.getelementbyid("bldet<?= htmlspecialchars($blo['id_bloku']) ?>").style.display = "block";
}
</script>

proměnná n má ssebou nést id, které je v DB.
Nevím jak všelijak to napsat.
Výsledek je vždy

onclick="od()1"
Nahoru Odpovědět
3.2.2020 14:06
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
gorri
Člen
Avatar
Odpovídá na gorri
gorri:3.2.2020 14:14

Tak se omlouvám. Moje hloupost. Našel jsem chybu. Sice to ještě nepracuje ale chybu jsem našel.

Nahoru Odpovědět
3.2.2020 14:14
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.2.2020 18:49

Co tak si napsat zkracene funkce?

var $ = document.querySelector.bind(document);
var $$ = document.querySelectorAll.bind(document);
//nebo
function $(id) {return document.getElementById(id);}

Pomuze to eliminovat chyby.
Nicmene, v php muzes vypsat cely ten kod, kdyz to neumis po jednom znaku.

$n = (int)$blo['id_bloku'];
$str = "
<script>
function od$n() {
    document.getelementbyid('$n').style.display = 'block';
}
</script>
";
echo $str;

Ale to stale neni reseni.

<script>
function od(id) {
    document.getelementbyid(id).style.display = 'block';
}
</script>

<a id="btnd1" onclick="od(this.id)">Odkaz</a>
<a id="btnd2" onclick="od(this.id)">Odkaz</a>
<a id="btnd3" onclick="od(this.id)">Odkaz</a> nebo
<a id="btnd4" onclick="od('btnd4')">Odkaz</a> a nebo pouzij pole
<a id="btnd[0]" onclick="od(this.id)">Odkaz</a>
<a id="btnd[1]" onclick="od(this.id)">Odkaz</a>
 
Nahoru Odpovědět
3.2.2020 18:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.