Avatar billede gunnernuhansen Nybegynder
15. januar 2008 - 16:12 Der er 5 kommentarer og
1 løsning

Skift navn og href og behold classen med JS?

Hej igen!

Jeg har sidder og at udskifte en tekst og link efter at en bruger har logget ind.

Teksten bliver udskiftet med understående script, men den tager ikke hrefén med. Den tager heller ikke classen med. Hvad skal jeg gøre ?

<div id="login" class="L1"><a id="HrefID" href="Default.aspx?ID=925" onmouseover="" onmouseout="" class="L1">Login</a></div>
<div id="menustreg">
<img src="/Files/System/design/menustreg.gif" border="0" alt="" width="11" height="29" name="img601" /></div>


<script type="text/javascript">
var strHref = document.getElementById("HrefID").href ;
var strLog = ("<!--@DW_extranet_AccessUserID-->");

if (strLog == ""){
document.getElementById("HrefID").href = strHref
}
else{
document.getElementById("HrefID").href = "/Admin/Public/extranetlogoff.aspx?id=191";
document.getElementById('login').innerHTML = 'Logout';

}
</script>
Avatar billede gunnernuhansen Nybegynder
15. januar 2008 - 16:14 #1
Det den skal gøre er at lave: Login -> om til Logout og samtidig ændre hreffen.
Beklager slå fejl... Jeg er ret frustreret over at jeg ikke kan få det til at virke :)
Avatar billede w13 Novice
15. januar 2008 - 18:27 #2
Ret lige koden til:

<script type="text/javascript">
var strHref=document.getElementById("HrefID").getAttribute("href");
var strLog=("<!--@DW_extranet_AccessUserID-->");

if(!strLog){
  document.getElementById("HrefID").setAttribute("href",strHref)
}
else{
  alert('Det virker!');
  document.getElementById("HrefID").setAttribute("href","/Admin/Public/extranetlogoff.aspx?id=191");
  document.getElementById('login').firstChild.nodeValue="Logout"
}
</script>

Bemærk at jeg bruger getAttribute("href") og setAttribute("href","ny værdi") i stedet for bare: href
Det er en mere uptodate-metode (som hører under betegnelsen DOM - Document Object Model).
Derudover undgår jeg innerHTML, der aldrig har været gyldig kode, og bruger i stedet firstChild.nodeValue til at sætte teksten med.

Fortæl mig lige, om der kommer en alert med teksten "Det virker!".
Avatar billede gunnernuhansen Nybegynder
15. januar 2008 - 23:34 #3
Den opper op og siger det virker men den har ikke ændret min text/link..
Avatar billede olebole Juniormester
15. januar 2008 - 23:39 #4
<ole>

else{
  alert('Det virker!');
  document.getElementById("HrefID").setAttribute("href","/Admin/Public/extranetlogoff.aspx?id=191");
  document.getElementById("HrefID").firstChild.nodeValue="Logout"
}

/mvh
</bole>
Avatar billede gunnernuhansen Nybegynder
16. januar 2008 - 10:39 #5
Sweet, det virker sku!! Mange tak for hjælpen w13! Og Ole, godt spottet! :) Tak det kunne jeg ikke lige gennemskue! Jeg havde mistet overblikket for længe siden.

Tak til jeg begge!

Forsat god dag..

Mvh.
Rasmus
Avatar billede olebole Juniormester
16. januar 2008 - 22:43 #6
Selvtak. I virkeligheden var det også problemet i dit eget script ... den sidste linje overskrev hele linket med en tekststreng. Lad nu endelig ikke dette få dig til at gå tilbage til den gamle løsning! Jeg tilslutter mig varmt w13's betragtninger omkring DOM  ;o)
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