Autor Zpráva
weroro
Profil
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
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>
Určite niečo robím zle, ale netuším čo.
Chamurappi
Profil
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ě nextSiblingy, 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
Cieľom je skrytie reklamy, na hostingu endora. Už som to ale urobil pomocou CSS.
div{display:none;}
.mojDIV{display:block;}
Na ten jeden DIV, čo tam chcem dočasne umiestniť to úplne stačí.
Joker
Profil
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>
tak stačí tento CSS:
   div{display:none;}
   #obal, #obal * {display:block;}
panther
Profil
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
Z tohto som vyrozumel niečo iné CSS3 a IE. Jak na to?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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