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?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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?
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.
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
<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>
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
roenving >> Ja, det har du ret i. Havde lige glemt det. Men koden fungerer... (selvfølgelig)
>>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+
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å?
<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?
Ups, den kode var til roenving. Koden kommer lige om lidt...
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
>>mikoalngelo Det er en god måde at få IE4 med på vognen '-)
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">
>>mikoalngelo Det ser godt ud ...
<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>
Har fundet den præcise fejl: Havde skrevet 1, ikke i, i kriteriet i for-loopet.
Hvis du accepterer, så del p. lige over. Be'om..;)
-- 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>
Jeg smutte nu... KOmmer igen senere. Hej.
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
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
Vi tilbyder markedets bedste kurser inden for webudvikling