Avatar billede connorz Nybegynder
23. maj 2003 - 14:47 Der er 21 kommentarer og
2 løsninger

Elementet, der kan skjules/vises

Jeg har noget tekst i mit dokument, som jeg gerne vil have, det er muligt for brugeren ved tryk på en knap at skjule/vise... Hvordan gør man det?
Avatar billede connorz Nybegynder
23. maj 2003 - 15:06 #1
jeg har flere steder, der er tekst, der skal vises/skjules
Skal teksten indrammes af bestemte tags og så navngives på en bestemt måde, eller hvordan?
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 15:17 #2
Indram teksten i <DIV> tags, og lav attributten ID="" til en unik ID, og kald den så fra noget JS-kode. Koden kommer om lidt.
Avatar billede roenving Novice
23. maj 2003 - 15:17 #3
Du bliver nødt til at lægge teksten som skal skjules/vises ind i <span>s eller <div>s og så ændre deres .style.visibility til hhv. hidden og visible
Avatar billede roenving Novice
23. maj 2003 - 15:21 #4
<SPAN> giver mulighed for at have det du skal vise/skjule midt i en linje, mens <DIV> kun kan være hele afsnit -- og det er rigtigt, som mikoalngelo skriver, at du skal sætte en ID på tagget, så du kan lave en:

<a href="#" onclick="document.getElementById("spanId").style.visibility='hidden';">Skjul text</a>
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 15:23 #5
Her er hele molevitten:

<SCRIPT TYPE="text/javascript">
var VisUnikID = true;
function VisSkjul(){
    if(document.all){document.all["UnikID"].style.visibility = (VisUnikID)?"hidden":"visible";}
    else{document.getElementById("UnikID").style.visibility = (VisUnikID)?"hidden":"visible";}
    VisUnikID = !VisUnikID;
}
</SCRIPT>

<DIV ID="UnikID">Teksten</DIV><INPUT TYPE="button" onclick="VisSkjul();" VALUE="Vis/Skjul">

Er gennemtestet
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 15:26 #6
roenving >> Ja, det har du ret i.
Havde lige glemt det.
Men koden fungerer... (selvfølgelig)
Avatar billede roenving Novice
23. maj 2003 - 15:28 #7
>>mikoalngelo

-- at bruge document.all er at forhindre andre end M$'s proselytter i at deltage, brug hellere document.getElementById

-- dette understøtter ganske vist ikke gamle browsere, men understøtter til gengæld NN6+, opera, mozilla osv. sammen med IE5+
Avatar billede connorz Nybegynder
23. maj 2003 - 15:32 #8
Ok - tror jeg har ideen, men jeg vil få en del <SPAN>-elementer, som alle skal skjules/vises ved et tryk på blot den ene knap/link... Hvordan skal de så døbes og hvad bliver JS-koden så?
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 15:39 #9
<SCRIPT TYPE="text/javascript">
var VisUnikID = true;
function VisSkjul(){
    if(document.getElementById){document.getElementById("UnikID").style.visibility = (VisUnikID)?"hidden":"visible";}
    else{document.all["UnikID"].style.visibility = (VisUnikID)?"hidden":"visible";}
    VisUnikID = !VisUnikID;
}
</SCRIPT>

<DIV ID="UnikID">Teksten</DIV><INPUT TYPE="button" onclick="VisSkjul();" VALUE="Vis/Skjul">

Bedre?
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 15:40 #10
Ups, den kode var til roenving.
Koden kommer lige om lidt...
Avatar billede roenving Novice
23. maj 2003 - 15:42 #11
Den bliver lidt lang, men ...

Dine spans giver du en id med et nummer i f.eks. span00, span01, span02 osv. og så:

<a href="#" onclick="for(i=0;i<20;i++){spannr="0"+i;spannr=spannr.substring(spannr.length-2);document.getElementById("span"+spannr).style.visibility='hidden'};">Skjul text</a>

-- jeg har ikke testet komplikationen endnu ...

Bemærk, at antallet skal sættes i for-løkken og det 0-baseret
Avatar billede roenving Novice
23. maj 2003 - 15:43 #12
>>mikoalngelo

Det er en god måde at få IE4 med på vognen '-)
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 15:56 #13
roenving >> Hvad er der galt med det her (har indsat nogle tjekkere rundt omkring)

<SCRIPT TYPE="text/javascript">
var VisUnikID = true;
var AntalBokse = 2;
function VisSkjul(){
        for (i=1; 1 < AntalBokse; i++){
            var Teksten = "UnikID" + i;
            alert(i + "\n" + Teksten)
        if(document.getElementById){document.getElementById(Teksten).style.visibility = (VisUnikID)?"hidden":"visible";}
          else{document.all[Teksten].style.visibility = (VisUnikID)?"hidden":"visible";}
        VisUnikID = !VisUnikID;
    }
}
</SCRIPT>

<SPAN ID="UnikID1">Teksten</SPAN><SPAN ID="UnikID2">Teksten</SPAN><INPUT TYPE="button" onclick="VisSkjul();" VALUE="Vis/Skjul">
Avatar billede roenving Novice
23. maj 2003 - 16:10 #14
>>mikoalngelo
Det ser godt ud ...
Avatar billede olebole Juniormester
23. maj 2003 - 16:15 #15
<ole>

Nej, det er helt galt  :)
Sådan skal det være:

<SCRIPT TYPE="text/javascript">
var VisUnikID = true;
var AntalBokse = 2;
function VisSkjul(){
    for (i=1; i<AntalBokse+1; i++) {
        var Teksten = "UnikID" + i;
        if (document.getElementById) {
            document.getElementById(Teksten).style.visibility = (VisUnikID)? "hidden" : "visible";
        } else {
            document.all[Teksten].style.visibility = (VisUnikID)? "hidden" : "visible";
        }
    }
    VisUnikID = !VisUnikID;
}
</SCRIPT>

<SPAN ID="UnikID1">Teksten</SPAN>
<SPAN ID="UnikID2">Teksten</SPAN>
<INPUT TYPE="button" onclick="VisSkjul();" VALUE="Vis/Skjul">

/mvh
</bole>
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 16:17 #16
Har fundet den præcise fejl: Havde skrevet 1, ikke i, i kriteriet i for-loopet.
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 16:19 #17
Hvis du accepterer, så del p. lige over.
Be'om..;)
Avatar billede roenving Novice
23. maj 2003 - 16:26 #18
-- og jeg fik også testet min udgave -- og brugte så lige et cowboy-trick (tak ole ;O):

<script language="javascript" type="text/javascript">
function gem(){

var spannr="check";
for(i=0;i<20;i++){
  spannr="0"+i;
  spannr=spannr.substring(spannr.length-2);
  document.getElementById("span"+spannr).style.display='none';
}
}
</script>
</head>

<body>

Noget tekst <SPAN ID="span00">Teksten</SPAN> Noget andet tekst <SPAN ID="span01">Teksten2</SPAN><br><br>
<a href="#" onclick="gem();">Skjul text</a>
Avatar billede mikoalngelo Nybegynder
23. maj 2003 - 16:35 #19
Jeg smutte nu... KOmmer igen senere.
Hej.
Avatar billede olebole Juniormester
23. maj 2003 - 16:41 #20
mikoalngelo >> Linien:
  VisUnikID = !VisUnikID;
var nu også placeret forkert  ;o)
Hvad angår points, er det kun dig, der har svaret - så det bliver nok ikke et problem (jeg har så rigeligt i forvejen).
/mvh
Avatar billede connorz Nybegynder
23. maj 2003 - 20:48 #21
tak alle 3 - mit net har været nede i nogle timer - derfor inaktiviteten ;(
Jeg har fået det til at virke ved at tage det bedste fra jer ;)
roenving>>> smid et svar, så deler jeg pointene :D
Avatar billede roenving Novice
23. maj 2003 - 23:06 #22
Det er vel godt '-)
Avatar billede roenving Novice
26. maj 2003 - 00:34 #23
Tak for points ;~}
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