Pouze tento týden sleva až 80 % na e-learning týkající se Javy. Zároveň využij akce až 50 % zdarma při nákupu e-learningu - více informací.
Aktualizovali jsme Zásady zpracování osobních údajů. Pokračováním užívání sítě projevíte souhlas s těmito podmínkami. Tuto zprávu můžete nyní zavřít.
discount 50 + hiring
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.