16. juli 2004 - 08:22
Der er
8 kommentarer og 1 løsning
Udskift tekst
Hej eksperter, Jeg roder lidt med nedenstående, men kan ikke få det til at spille som jeg vil. Jeg har en masse priser på en side som jeg ønsker at skjule med teksten "******" når man klikker på en knap. Jeg har fået det til at virke med den første, men det virker ikke med resten. <form> <input type="checkbox" onclick="document.getElementById('test_1').style.display=(!this.checked)?'block':'none'; document.getElementById('test_2').style.display=(this.checked)?'block':'none';"/> <div id="test_1"> Farvel </div> <div id="test_2" style="display:none"> Hej </div> <br><br> <div id="test_1"> Farvel </div> <div id="test_2" style="display:none"> Hej </div> </form> Jeg ønsker at komme frem til at når jeg klikker på en knap bliver alle mine "CostPrice" divs skiftet ud med teksten "*****" <div id="CostPrice">134,81</div> <div id="CostPrice">145,42</div> <div id="CostPrice">112,13</div> <div id="CostPrice">861,74</div> Hilsen Claus
Annonceindlæg fra Deloitte
Du må ikke have mere end een af hver id, for de skal være unikke !-) <style type="text/css"> .NoPrice{display:none;} </style> <body> <input type="checkbox" onclick="skjulTal(this)" /> <script type="text/javascript"> function skjulTal(elm){ d = document.getElementsByTagName('DIV'); for(i=0;d.length>i;i++){ if(d[i].className.indexOf('CostPrice')>-1){ d[i].style.display=(!elm.checked)?'block':'none'; }else if(d[i].className.indexOf('NoPrice')>-1){ d[i].style.display=(elm.checked)?'block':'none'; } } } </script> <div class="CostPrice">134,81</div> <div class="NoPrice">*****</div> <div class="CostPrice">145,42</div> <div class="NoPrice">*****</div> <div class="CostPrice">112,13</div> <div class="NoPrice">*****</div> <div class="CostPrice">861,74</div> <div class="NoPrice">*****</div> </body>
Kanon! Hvor skal jeg lede hvis jeg i stedet for en checkbox gerne vil have en knap der også skifter tekst alt efter om man har trykket eller ej? Altså hvis den viser tallene står der "Skjul tal" og ellers står der "Vis tal" Kan man ikke ændre indholdet af CostPrice i stedet for at have en til <div...</div> ? Det er jo ligemeget - er bare nysgerrig :-)
Problemet er at finde værdierne frem igen !-) Men man kan sagtens !o] Med en knap skal vi have en variabel med: <style type="text/css"> .NoPrice{display:none;} </style> <body> <input type="button" onclick="skjulTal(this)" /> <script type="text/javascript"> var vis = true; function skjulTal(elm){ d = document.getElementsByTagName('DIV'); for(i=0;d.length>i;i++){ if(d[i].className.indexOf('CostPrice')>-1){ d[i].style.display=(!vis)?'block':'none'; }else if(d[i].className.indexOf('NoPrice')>-1){ d[i].style.display=(vis)?'block':'none'; } } vis = !vis; } </script> <div class="CostPrice">134,81</div> <div class="NoPrice">*****</div> <div class="CostPrice">145,42</div> <div class="NoPrice">*****</div> <div class="CostPrice">112,13</div> <div class="NoPrice">*****</div> <div class="CostPrice">861,74</div> <div class="NoPrice">*****</div> </body>
Laver du ikke et svar? Hvordan skifter jeg så teksten i knappen?
Enten: <input type="button" value="Vis/skjul tal" onclick="skjulTal(this)" /> eller: <button onclick="skjulTal(this)">Vis/skjul tal</button> Velbekomme '-)
Argh, jeg så ikke at du ville skifte teksten i kanppen: <button onclick="skjulTal(this)">Skjul tal</button> function skjulTal(elm){ d = document.getElementsByTagName('DIV'); for(i=0;d.length>i;i++){ if(d[i].className.indexOf('CostPrice')>-1){ d[i].style.display=(!vis)?'block':'none'; }else if(d[i].className.indexOf('NoPrice')>-1){ d[i].style.display=(vis)?'block':'none'; } } elm.innerHTML = (vis)?"Vis tal":"Skjul tal"; vis = !vis; }
Tester senere... Mange tak :-)
Vi tilbyder markedets bedste kurser inden for webudvikling