Autor | Zpráva | ||
---|---|---|---|
weroro Profil |
#1 · Zasláno: 11. 10. 2012, 12:33:16
Dobrý deň,
mám ošemetný problém a preto sa obraciam na Vás. Na stránke kde nemôžem upraviť časť HTML kódu sa na jej úplný koniec, tesne pred tag </body> automaticky umiestňuje <div>, bez class a bez id, ktorý potrebujem pomocou JS schovať. Najprv som sa to snažil vyriešiť tak, že som pred tento DIV vložil <br id="nieco"> a následne som použil tento JS. document.getElementById("nieco").nextSibling.style.display = "none"; ale daný DIV je zapísaný takto <div > (dve medzery pred uzatvorením, a to mi JS nechce [nevie] nájsť.) Dá sa to prosím nejako vyriešiť?
Ďakujem za odpovede. |
||
Chamurappi Profil |
#2 · Zasláno: 11. 10. 2012, 12:46:09
Reaguji na werora:
Mezery ve značce nemají na JavaScript vůbec žádný vliv — ten ani nemá snadný způsob, jak zjistit, že tam nějaké byly. Vidí jen DOM. |
||
weroro Profil |
Toto mi korektne funguje iba v IE a ostatné prehliadače (FF, O, CH) to ignorujú a nevykonajú nič.
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title></title> <script type="text/javascript"> window.onload = function remElem () { document.getElementById("divremove").nextSibling.style.display = 'none'; } </script> </head> <body> <div>Tento text chcem ponechať</div> <br id="divremove"> <div >Tento text chcem skryť</div> </body> </html> |
||
Chamurappi Profil |
#4 · Zasláno: 11. 10. 2012, 15:18:29
Reaguji na werora:
Protože nextSibling v ostatních prohlížečích je prázdný textový uzel. Máš ho očividně i v HTML — za <br> máš odřádkování a mezery. Mohl bys cyklem projet postupně nextSibling y, dokud není jejich tagName == "DIV" .
Můžu se zeptat, co je vlastně cílem? K čemu to celé má být? Třeba by šlo vymyslet lepší postup. |
||
weroro Profil |
#5 · Zasláno: 11. 10. 2012, 19:37:26
Cieľom je skrytie reklamy, na hostingu endora. Už som to ale urobil pomocou CSS.
div{display:none;} .mojDIV{display:block;} |
||
Joker Profil |
#6 · Zasláno: 11. 10. 2012, 19:51:42
weroro:
Trochu drastické řešení, nejdřív všechny prvky <div> skrýt a pak všechny kromě jednoho zase zobrazit. Navíc všechny ostatní DIVy musejí mít tu třídu a kdyby třeba nějaký skript vyrobil svůj vlastní DIV, mohou vznikat těžko odhalitelné chyby. Prakticky vždy půjde sestavit CSS selektor, který zaměří právě ten jeden DIV (tolik kdyby třeba někdo další chtěl řešit stejný problém). „Cieľom je skrytie reklamy, na hostingu endora.“ Což je ovšem řekl bych porušení podmínek užívání hostingu. |
||
weroro Profil |
Joker:
K tomu, že tam mám iba jeden DIV, to bohato stačí. Ak by som ich tam mal viac (štrukrúru), by som potreboval určite lepšie riešenie. Áno, uvedomujem si porušenie podmienok, ale potrebujem to iba na jeden deň, potom to vrátim do pôvodného stavu (to bude zajtra). Chamurappi: Ďakujem, za vysvetlenie. |
||
weroro Profil |
Tak nakoniec som prišiel aj na čistý CSS spôsob pre štruktúrovaný web, ktorý mi funguje.
Ak mám napr. takúto štruktúru: <div id="obal"> obalovaci <div>obalovaci - prvy</div> <div>obalovaci - druhy <div>obalovaci - druhy - prvy <div>obalovaci - druhy - prvy - prvy</div> <div>obalovaci - druhy - prvy - druhy</div> </div> </div> koniec obalovaci </div> <div>Toto nechcem1</div> <div> Toto nechcem2 <div class="trieda">Toto nechcem2 - prvy</div> </div> <div>Toto nechcem3</div> div{display:none;} #obal, #obal * {display:block;} |
||
panther Profil |
#9 · Zasláno: 13. 10. 2012, 11:27:22
weroro:
„tak stačí tento CSS:“ skutecne? Tak se nediv, az se ti na strance objevi dalsi necekane problemy. Ten zapis dela neco trochu jineho, nez chces nebo nez myslis. Konkretnejsi nebudu. |
||
weroro Profil |
#10 · Zasláno: 13. 10. 2012, 12:17:44
Z tohto som vyrozumel niečo iné CSS3 a IE. Jak na to?
|
||
Časová prodleva: 12 let
|
0