Avatar billede jacob_m Nybegynder
31. januar 2007 - 14:08 Der er 9 kommentarer og
1 løsning

Funktion sikker i Firefox etc.

Hej..

Denne funktion ser ikke ud til at virke i Firefox og andre browsere end IE:

function vis(navn){
    var arr_elementer = new Array('til_1','til_2','til_3','til_4');
   
    for (var i=0;i< arr_elementer.length;i++) {
        //if (!navn == document.getElementById(arr_elementer[i])) {
            document.getElementById(arr_elementer[i]).style.display='none';
        //}
        if(navn == document.getElementById(arr_elementer[i])){
            document.getElementById(arr_elementer[i]).style.display='block';
        }
    }
}

Hvad er galt!
Avatar billede olebole Juniormester
31. januar 2007 - 14:15 #1
<ole>

Mon ikke du bruger en name-attribut på elementerne? Med getElementById kan du naturligvis kun tilgå elementer, der har en id-attribute  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
31. januar 2007 - 14:16 #2
- men IE er buggy på dette punkt, så dér virker metoden også med en name-attribut  :o|
Avatar billede jacob_m Nybegynder
31. januar 2007 - 14:21 #3
Det er fordi jeg skjuler nogle DIVS med id´erne til_1, til_2 etc.

altså eks.

<div id="til_1"></div>
Avatar billede jacob_m Nybegynder
31. januar 2007 - 14:22 #4
Prøvede faktisk først med name, men det kunne jeg ikke få til at virke...
Avatar billede crazysnap Seniormester
31. januar 2007 - 15:21 #5
Hej jacob m,


Er det stadig et problem? For hvis det er, er der et eksempel her nedenfor som virker i alle browsere:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>hide demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/JavaScript">
        function vis(navn)
        {
            var arr_elementer = new Array('til_1','til_2','til_3','til_4');
   
            for (var i=0;i< arr_elementer.length;i++)
            {
                if(navn == arr_elementer[i])
                    document.getElementById(arr_elementer[i]).style.display='block';
                else
                    document.getElementById(arr_elementer[i]).style.display='none';
            }
        }
        </script>
    </head>
    <body>
        <div id="til_1">1</div>
        <div id="til_2">2</div>
        <div id="til_3">3</div>
        <div id="til_4">4</div>
        <input type="button" onclick="vis('til_1');" value="test" />
    </body>
</html>


Mvh.

- Snap
Avatar billede olebole Juniormester
31. januar 2007 - 15:53 #6
Spørgsmålet er, hvad meningen med scriptet præcist er  =)
Avatar billede jacob_m Nybegynder
12. februar 2007 - 14:03 #7
Nu fik jeg tid til at teste det igennem og det virker som det skal crazysnap :D

Hvad gjorde du helt præcis.. For kan næsten ikke se mig ud af forskellen :-D
Avatar billede crazysnap Seniormester
12. februar 2007 - 14:27 #8
Hej jacob m,

Nu er det jo lidt tid siden, men jeg tror fejlen lå i at du sikkert kastede en streng ind som parameter til din "vis"-metode og da du derefter udførte:


if( navn == document.getElementById(arr_elementer[i]) )


sammenlignede den en streng (navn) med et "div"-tag objekt (document.getElementById(arr_elementer[i])), hvilket ikke giver nogen mening. Så jeg ændrede i det store og hele bare det "if"-statement til:


if( navn == arr_elementer[i] )


så den sammenlignede på strengene i stedet.  :)


Håber det hjalp!


Mvh.

- Snap
Avatar billede jacob_m Nybegynder
12. februar 2007 - 14:32 #9
Jeps.. Det var lige det der skulle til at skabe forståelsen.. Hjælper jo ikke meget at få hjælp hvis man så bare laver samme fejl i morgen :-D

Mange tak..
Avatar billede crazysnap Seniormester
12. februar 2007 - 14:42 #10
Det har du fuldstændig ret i og skidt jeg ikke gav en beskrivelse af hvad jeg mente fejlen var, men jeg er glad for at kunne hjælpe og at du har fået det til at virke!

Tak for pointene og held og lykke med det. :)


Mvh.

- Snap
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