Autor | Zpráva | ||
---|---|---|---|
vodys Profil |
Zdravím,
pro někoho možná naprostá banalita - pro mě nadlidský úkol. Potřebuji skrýt div, pokud v jiném divu bude prázdný atribut img src. Tedy pokud: <div class="obrazek"><img src=""></div> <div class="obsah">Obsah viditelný pouze s obrázkem</div> Našel jsem něco takového, ale chce to asi vyladit $(document).ready(function() { $(".obrazek").each(function() { var atr = $(".obrazek").attr("src"); if(atr === "") { $(".obsah").addClass("hidden"); } else { $(".obsah").removeClass("hidden"); } }); }); Díky za rady, případně pomoc! Můžete uzavřít, chyba byla v hlavičce a nastavení divu. Správně tedy <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> </head> <body> <div class="cokoliv"><img class="obrazek" src=""></div> <div class="obsah">Obsah viditelný pouze s obrázkem</div> <script type="text/javascript"> $(document).ready(function() { $(".obrazek").each(function() { var atr = $(".obrazek").attr("src"); if(atr === "") { $(".obsah").addClass("hidden"); } else { $(".obsah").removeClass("hidden"); } }); }); </script> |
||
Keeehi Profil |
Hele, víš že pokud budeš mít obrázků na stránce víc, tak budeš všechny obsahy skrývat/odkrývat jen podle toho, který bude obrázek vyjde jako poslední ve funkci each? Protože tam nikde nemáš vztah vůči tomu obrázkovému elementu co se zrovna konroluje.
A co to udělat pomocí CSS? div.obrazek:has(img[src=""]) + div.obsah { display:none; } Je možné, že tam mám nějaký překlep jelikož to teď nemohu otestovat ale v zásadě by to mělo nějak takto fungovat. |
||
Tomášeek Profil |
#3 · Zasláno: 9. 12. 2019, 11:06:31
Keeehi:
„A co to udělat pomocí CSS?“ Tam si nejsem úplně jistý podporou. Pro reálné použití to asi není, ne? |
||
Keeehi Profil |
#4 · Zasláno: 9. 12. 2019, 15:59:40
Tomášeek:
Máš asi pravdu. Co jsem teď koukal tak :has() je zatím jen ve fázi návrhu, což jsem si zapomněl ověřit. |
||
vodys Profil |
Mohu Vás ještě požádat o variantu js na prázdný div před obrázkem?
Zjistil jsem, že <img src=""> se mi zobrazuje pouze v backendu - frontend už ukazuje prázdný div, nejlépe tedy doplnit současný JS. <div class="cokoliv"></div> <div class="obsah">Zobrazit pouze pokud je v divu text či html</div> |
||
Tomášeek Profil |
vodys:
Tam už to jde i pomoci čistého css, :empty .
|
||
Časová prodleva: 1 rok
|
0