Avatar billede dr_nielsen Nybegynder
18. december 2002 - 15:13 Der er 6 kommentarer og
1 løsning

læse style.display

Jeg får følgende fejl, når jeg vil vise en div
"style.display" is null or not an object

html:

<div id="toolbarContainer">
  <div class="element">
    <a id="top0">Print</a>
  </div>
  <div class="element">
    <a id="top1" href="java script:showSearch()">Search</a>
    <div id="searchContainer">
      Her er selve søge laget
    </div>
  </div>
</div>


script:

function showSearch(){
  if(getElement('searchContainer')){
    var oSearchContainer = getElement('searchContainer');
    if(oSearchContainer.style.display == 'block'){
      oSearchContainer.style.display = 'none';   
    }else{
      oSearchContainer.style.display = 'block';   
    }
  }
}

!! getElement() er bare en getlementById og den returnerer fint et object

Det virker hvis jeg flytter 'searchContainer' helt ud af sammenhængen, men det vil jeg helst undgå.
Avatar billede nikolajdu Nybegynder
18. december 2002 - 15:26 #1
Prøv at sætte <div id="searchContainer" style="display:block">

på....
Avatar billede pelkjaer Nybegynder
18. december 2002 - 15:28 #2
function showSearch(id){
  if (document.all){
    if(searchContainer.style.display == 'none'){
      document.all[id].style.display = '';
    } else {
      document.all[id].style.display = 'none';
    }
  } else if (document.getElementById){
    if(document.getElementById(id).style.display == 'none'){
      document.getElementById(id).style.display = 'block';
    } else {
      document.getElementById(id).style.display = 'none';
    }
  }
}

og

<div id="toolbarContainer">
  <div class="element">
    <a id="top0">Print</a>
  </div>
  <div class="element">
    <a id="top1" href="java script:showSearch('searchContainer')">Search</a>
    <div id="searchContainer">
      Her er selve søge laget
    </div>
  </div>
</div>
Avatar billede pelkjaer Nybegynder
18. december 2002 - 15:33 #3
Rettelse

function showSearch(id){
  if (document.all){
    if(searchContainer.style.display == 'block'){
      document.all[id].style.display = 'none';
    } else {
      document.all[id].style.display = 'block';
    }
  } else if (document.getElementById){
    if(document.getElementById(id).style.display == 'block'){
      document.getElementById(id).style.display = 'none';
    } else {
      document.getElementById(id).style.display = 'block';
    }
  }
}
Avatar billede olebole Juniormester
19. december 2002 - 11:04 #4
<ole>

Som nikolajdu skriver, skal du sætte dine styles inline, hvis du vil kunne aflæse dem.
Der er forskel på at sætte styles direkte på et HTML-elements style-objekt og sætte dem i et stylesheet. Sætter du dem i et stylesheet, kan de ikke aflæses på elementet.

En anden løsning er at sætte dem dynamisk ( ELEMENT.style.color='#ff0000'; ). Nu er farven også sat direkte på elementet - og kan derfor aflæses på dette.

Du kan evt. også kikke lidt her:

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/currentstyle.asp

... og:

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/runtimestyle.asp

Men husk, disse to objekter er proprietære MS-ting, du ikke kan anvende udenfor IE.

/mvh  *<|:o)
</bole>
Avatar billede nikolajdu Nybegynder
09. januar 2003 - 04:13 #5
ehe lukke???
Avatar billede dr_nielsen Nybegynder
09. januar 2003 - 10:42 #6
Problemet var desværre et helt andet. der optrådte flere end et element med samme id, hmm, men I har alle ret, så først til mølle får point
Avatar billede nikolajdu Nybegynder
09. januar 2003 - 10:53 #7
ok godt så - Fint du fik det løst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester