Avatar billede Daniel.E Praktikant
27. maj 2005 - 12:26 Der er 15 kommentarer og
1 løsning

getElementsByTagName problemer

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<script language="javascript">
    var code = document.getElementsByTagName('A');
    code.innerHTML = "GOOGLE";
    code.href = "http:www.google.com";
</script>
</head>
<body>
        <a id="test" href=""></a>
</body>
</html>


Hvorfor virker det her ikke ??
Avatar billede necro655 Nybegynder
27. maj 2005 - 12:32 #1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>Tectura Time & Expense Entry System</title>
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        <LINK href="/Defaultcss.css" rel="stylesheet">
        <script language="javascript">
            function tt()
            {
                var t = document.getElementById("test");
                t.innerHTML = "www.google.dk";
                t.href = "http://www.google.dk";
            }
           
        </script>
    </HEAD>
    <body onload="tt()">
        <form id="Form1" method="post" runat="server">
        <a href="" id="test">ddd</a>
        </form>
    </body>
</HTML>

prøv denne køde

dit a tag findes ikke når du kører dit javascript kode..
Avatar billede fennec Nybegynder
27. maj 2005 - 12:34 #2
getElementsByTagName returnere en collection (tabel) af alle elementer af typen "A".

var code = document.getElementsByTagName('A');
for(f=0;f<code.length;f++)
{
  code[f].innerHTML = "GOOGLE";
  code[f].href = "http:www.google.com";
}
Avatar billede busschou Praktikant
27. maj 2005 - 12:34 #3
getElementsByTagName giver dig for det første en liste/array af alle tags. Så hvis du skal benytte det skal du referere til hvilket du ønsker
--
<script language="javascript">
    var code = document.getElementsByTagName('A');
    code[0].innerHTML = "GOOGLE";
    code[0].href = "http:www.google.com";
</script>
--
For det andet er "getElementsByTagName" _Ikke_ anbefalet af W3C som sætter standarderne
Derfor vil jeg også anbefale dig at benytte id eller name attributen istedet
Avatar billede fennec Nybegynder
27. maj 2005 - 12:35 #4
code[f].href = "http://www.google.com";
Avatar billede fennec Nybegynder
27. maj 2005 - 12:43 #5
busschou >>
Hvor står der at W3C ikke anbefaler getElementsByTagName(). Den er da under deres DOM level 1.
Avatar billede busschou Praktikant
27. maj 2005 - 12:59 #6
fennec >> jeg må bide det i mig igen kan jeg godt se. Har bare set det stå på så mange sider efterhånden at jeg "har troet" på det. Men jeg kan godt se det står såvel i DOM1 som DOM2 og DOM3 for den sags skyld på w3.org
Avatar billede roenving Novice
27. maj 2005 - 13:07 #7
-- monstro det er getElementsByName, du har forvekslet med ?-)
Avatar billede Daniel.E Praktikant
27. maj 2005 - 13:16 #8
ohh, ja det kan jeg godt se. 

necro655 eksempel virker, men jeg har lige et spørgsmål.  Burde jeg ikke kunne se den nye HTML kode, ved højreklik "vis kildekode" ???

Grunden til at jeg spørger er fordi at jeg kun ser den gamle <a href="" id="test">ddd</a>
Avatar billede Daniel.E Praktikant
27. maj 2005 - 13:18 #9
Ville det ikke være pænere sådan her:

        <script language="javascript">
            window.onload = function tt()
            {
                var t = document.getElementById("test");
                t.innerHTML = "www.google.dk";
                t.href = "http://www.google.dk";
            }

        </script>
Avatar billede busschou Praktikant
27. maj 2005 - 13:19 #10
jo det er pænere i mine øjne
roenving >> kan ikke huske hvor jeg har set det.. men det står her i alt fald
http://www.w3schools.com/htmldom/dom_obj_document.asp
viser så at man ikke skal tro blindt på w3schools :o)
Avatar billede roenving Novice
27. maj 2005 - 13:24 #11
Nej, for Vis kode viser den kode, som siden er indlæst med, ikke senere modifikationer, som browseren som udgangspunkt jo ikke ved om er udført !-)

-- hvis du vil se det kan du lave dig en bookmarklet, som du så kan bruge ...

Hvis du nu _kun_ laver et simpelt link i et dokument kan du højreklikke på linket i browseren, vælge Føj til foretrukne, sige ja til sikkerheds-alerten og gemme den.

F.eks. kunne _hele_ dit dokument se således ud:

<a href="java script:alert(document.body.innerHTML)">Vis body-kode</a>
Avatar billede Daniel.E Praktikant
27. maj 2005 - 13:26 #12
busschou >> Ja, det var også min mening af jeg ville gøre sådan endeligt.  Synes ikke at det er så smart at kalde javascript via HTML når man kan:

obj.onmouseover
window.(event)

Det gør det mere overskueligt, og gør HTML´en renere og nemmre at håndtere.
Avatar billede Daniel.E Praktikant
27. maj 2005 - 13:36 #13
necro655 du må gerne ligge et svar.
Avatar billede olebole Juniormester
28. maj 2005 - 02:47 #14
<ole>

busschou >> Nej, man skal tværtimod være blind for at stole på w3schools. Det site er _næsten_ ligeså fyldt med fejl, som html.dk!  :oP
attributes- og childNode-kollektionerne skulle således heller ikke være W3C bekendt - ej heller documentElement-elementet ...!?!!??!!!

Nå, man må jo trøste sig med, der trods alt er huller mellem fejlene - omend de optræder alt for spredt efter min smag. 4-5 fejl på en side med så lidt substans - og så meget reklame ... det er zq for ringe!

vb2 >> Det er en bookmarklet, roenving har skrevet til dig ... og så er det jo tvingende nødvendigt at skrive det på dén måde. Det kan godt være, du finder din kode lettere håndterbar - men den er ikke brugbar i den sammenhæng  :)

/mvh
</bole>
Avatar billede Daniel.E Praktikant
31. maj 2005 - 12:12 #15
hmm.. hvem vil have de 15 points, der har lagt et svar her ??
Avatar billede busschou Praktikant
31. maj 2005 - 12:48 #16
tja dem du synes fortjener dem vel ;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