Avatar billede ofirpeter Nybegynder
25. juli 2006 - 14:15 Der er 7 kommentarer og
1 løsning

Ændre variabel ved klik på link

Jeg bruger følgende til at vise/skjule en tabel:

<script type="text/javascript">
function toggleTR(tr,btn) {
  if (tr.style.display != 'none') {
    tr.style.display = 'none';
    btn.value = 'Vis';
    }
   
  else {
    tr.style.display = '';
    btn.value = 'Skjul';
    }
}
</script>

<a href="#" onClick="toggleTR(myTR,this)">Vis/skjul</a>

I stedet for teksten "Vis/skjul", så jeg gerne at denne tekst skiftede, alt afhængi af om tabellen er skjult eller ej. Så den blot er "Skjul" når tabellen er fremme, og "vis" når tabellen er væk.

Kan dette lade sig gøre?
Avatar billede Slettet bruger
25. juli 2006 - 14:23 #1
Dertil kan du bruge innerHTML i stedet for value, som du bruger nu..

<script type="text/javascript">
function toggleTR(tr,btn) {
  if (tr.style.display != 'none') {
    tr.style.display = 'none';
    btn.innerHTML = 'Vis';
    }
   
  else {
    tr.style.display = '';
    btn.innerHTML = 'Skjul';
    }
}
</script>

<a href="#" onClick="toggleTR(myTR,this)">Vis/skjul</a>

/1
Avatar billede mrbonus Novice
25. juli 2006 - 14:33 #2
Dette kan godt lade sig gøre, su skal bare benytte "outerText" istedet for "value"
Avatar billede mrbonus Novice
25. juli 2006 - 14:35 #3
DOH, der blev svart imens jeg var ved at skrive, hehe, men man kan benytte både outerHTML, og outerText
Avatar billede Slettet bruger
25. juli 2006 - 15:03 #4
Jeg har undersøgt outerHTML/-Text og jeg tror ikke, det er en god ide at bruge det her, da man ved gentagne tryk skal kunne ændre indholdet af tagget.

Her er hvad jeg har forstået ved de forskellige referencemuligheder:

(** - stjerner - betyder at teksten er formateret fed mens <b></b> viser at tagget er formateret til tekst)

document.getElemtById('test')._____ = "<b>Vis</b>";

innerHTML:
<div id='test'>*Vis*</div>

innerText:
<div id='test'><b>Vis</b></div>

outerHTML:
*Vis*

outerText:
<b>Vis</b>


Det betyder at outer sletter parent tagget og det er dermed ikke muligt at referere til det igen (og dermed ændre teksten mellem Vis og Skjul)

/1.
Avatar billede ofirpeter Nybegynder
25. juli 2006 - 15:07 #5
Super, mange tak.
Avatar billede mrbonus Novice
25. juli 2006 - 15:31 #6
Jeg synes også nok at den sluttede understregningen af tagget, kiggede dog lidt på det, og hvis man vil kan man godt få det til at virke, jeg løste det således

<html>
<script type="text/javascript">
function toggleTR(btn)
{
    btn.outerHTML = '<a id=\"test\" href=\"#\" onClick=\"toggleTR(this)\">Vis</a>';
}
</script>

<body>
<a id="test" href="#" onClick="toggleTR(this)">Vis/skjul</a>
</body>
</html>
Avatar billede Slettet bruger
25. juli 2006 - 16:23 #7
Yes. på den måde virker det.. men i dette tilfælde synes jeg det vil være lidt en omvej at tage..

I dette tilfælde betyder disse to linjer det samme:
btn.outerHTML = '<a id=\"test\" href=\"#\" onClick=\"toggleTR(this)\">Vis</a>';
btn.innerHTML = 'Vis';

/1.
Avatar billede mrbonus Novice
25. juli 2006 - 16:28 #8
Ahhhh, min fejl, jeg så ikke at du havde "inner" foran nogen af dem, jeg så dem alle sammen som "outer", hehe
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