Avatar billede tommyls Nybegynder
10. september 2002 - 15:02 Der er 10 kommentarer og
2 løsninger

nem lille en!

hvis jeg har en html-kode:

<div><div>dette er den første</div></div>

og en anden kode:

<div><div>dette er den anden</div></div>

hvordan laver jeg en funktion der skifter mellem disse:

onclick:minFunktion()

Det er vel ikke noget problem?

T
Avatar billede Slettet bruger
10. september 2002 - 15:10 #1
Det fatter jeg ikke en brik af! For det første bruger du ved hver div to tags, hvilket er ganske unødvendigt. For det andet nævner du kun én ting, når du siger "disse"!?
Avatar billede Slettet bruger
10. september 2002 - 15:13 #2
Er problemet at du gerne vil gøre den ene <div> synlig og den anden usynlig når du kalder funktionen?
Avatar billede Slettet bruger
10. september 2002 - 15:16 #3
<div id="forste" style="display: block;">den første</div>

<div id="anden" style="display: none;">den anden</div>

sådan skal dine tags se ud... kan du så se hvordan funktionen skal laves?
Avatar billede Slettet bruger
10. september 2002 - 15:19 #4
function myFunc(){
  if (document.all.forste.display == block){
    document.all.forste.display = none;
    document.all.anden.display = block;
  }
  else{ omvendt af det ovenfor }
}
Avatar billede tommyls Nybegynder
10. september 2002 - 15:19 #5
I skal ikke tænke på hvilken kode de står:

Den kunne se således ud:

<div class="container">
    <div><p><a href="">dette er en knap</a></p></div>
    <div class="floater1">jeg start med at se sådan ud!</div>
</div>

når jeg så klikker på linket skifter den til denne kode.

<div class="container">
    <div><p><a href="">dette er en knap</a></p></div>
    <div class="floater23">Nu ser jeg sgu sådan ud</div>
</div>

got it?

T
Avatar billede Slettet bruger
11. september 2002 - 15:44 #6
<script>
nr = 0;

function skift() {
txt = new Array();
txt[0] = "<div><p><a href="">dette er en knap</a></p></div><div class="floater1">jeg start med at se sådan ud!</div>";
txt[1] = "<div><p><a href="">dette er en knap</a></p></div><div class="floater23">Nu ser jeg sgu sådan ud</div>";
nr = 1 - nr;
if (document.getElementById)
document.getElementById("container").innerHTML = txt[nr];
else if (document.all)
document.all.container.innerHTML = txt[nr];
}
</script>

Virker i IE4+ og NS6+.
Avatar billede Slettet bruger
11. september 2002 - 15:47 #7
Hov, der lavede jeg en dum fejl:

<script>
nr = 0;

function skift() {
txt = new Array();
txt[0] = '<div><p><a href="">dette er en knap</a></p></div><div class="floater1">jeg start med at se sådan ud!</div>';
txt[1] = '<div><p><a href="">dette er en knap</a></p></div><div class="floater23">Nu ser jeg sgu sådan ud</div>';
nr = 1 - nr;
if (document.getElementById)
document.getElementById("container").innerHTML = txt[nr];
else if (document.all)
document.all.container.innerHTML = txt[nr];
}
</script>

Og her er et link, der skifter mellem de to tekster:

<a href="#" onClick="skift(); return false;">Skift</a>

Læg mærke til, at alle apostroffer skal have et backslash foran, fx:

txt[0] = '<div>Dette er Eva\'s og Adam\'s side!</div>';
Avatar billede Slettet bruger
12. september 2002 - 08:27 #8
Er alt det med arrays og tællere ikke at forvirre sagen lidt. Fatter du det tommy?

Understøtter Netscape innerHTML? Det gør Opera ihvertfald ikke! men de understøtter begge write().

Det er dog noget omstændigt:

element = doccument.getElementById('container');
element.open();
element.write(
  <p><a href="">dette er en knap</a></p>
  <div class="floater23">Nu ser jeg sgu sådan ud</div>
);
element.close();
Avatar billede Slettet bruger
12. september 2002 - 08:31 #9
Eller du kan vælge en helt anden tilgang, som den jeg først foreslog. Der har du to <DIV> elementer, som du viser og skjuler. Istedet for at ændre indholdet af et enkelt div element.
Avatar billede Slettet bruger
12. september 2002 - 08:36 #10
<a href="">dette er en knap</a>
<div class="floater1">jeg start med at se sådan ud!</div>
<div class="floater23">Nu ser jeg sgu sådan ud</div>

<script>

function myFunc(){
  if (document.all.floater1.display == block)
  {
    document.all.floater1.display = none;
    document.all.floater23.display = block;
  }
  else{
    document.all.floater1.display = block;
    document.all.floater23.display = none;
  }
}

</script>
Avatar billede Slettet bruger
12. september 2002 - 15:59 #11
jenspo>> NS6 forstår innerHTML; NS4 skal have specialhjælp, så det droppede jeg til at starte med.
Nej, jeg synes ikke det er spor besværligt. Desuden vil ingen af dine scripts virke (prøv selv). Du mangler at starte og slutte alle dine strenge.
Avatar billede Slettet bruger
18. september 2002 - 08:53 #12
nå ja gåseøjen, ups. Det er godt du selv fandt ud af det.
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

IT-JOB

Forsvarets Efterretningstjeneste

Linux Infrastructure Specialist

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Netcompany A/S

IT Consultant

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknologirådgiver inden for AI-området til Teknologiafdelingen