Avatar billede gadebarnet Nybegynder
12. april 2006 - 10:52 Der er 14 kommentarer

find alle <a href> på en side

Jeg har en liste:

<a name="1">
<a href="hest">hest</a>
<a name="2">
<a href="gris">gris</a>
<a name="3">
<a href="ko">ko</a>


Det står sådan, og det har jeg IKKE mulighed for at lave om på.

Kan man via javascript følgende:

1 Finde alle <a></a> i filen
2 hvis der i query'en er en variabel det hedder ext1=1 så gå ind og finde den a ved "name=1" og så tage indholdet af den næste <a ?

i dette tilfælde ville min værdi være hest
Avatar billede erikjacobsen Ekspert
12. april 2006 - 11:10 #1
Grov skitse - for at give ideen:

<html>
<head>
<script>
  function testf() {
    var liste = document.getElementsByTagName("a");
    for (i=0;i<liste.length;i++) {
      if (liste[i].name=="2" && i<liste.length-1) {
        alert(liste[i+1].text);
      }
    }

  }
</script>
</head>

<body>

<a name="1">
<a href="hest">hest</a>
<a name="2">
<a href="gris">gris</a>
<a name="3">
<a href="ko">ko</a>

<input type="button" value="test" onclick="testf()">
</body>
</html>
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:15 #2
Den der giver fejl
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:15 #3
fejlne er undefinde ???
Avatar billede erikjacobsen Ekspert
12. april 2006 - 11:18 #4
Scriptet fra før virker hos mig. Kan du være mere specifik?
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:19 #5
Ja, når jeg trykker på knappen kommer der en alert box med undefind ?
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:22 #6
Hvie jeg bruger innerHTML så virker det :)
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:24 #7
Kan du så lige forklare mig hvordan jeg henter en querystring i javascript ?
Avatar billede erikjacobsen Ekspert
12. april 2006 - 11:29 #8
Hvis du har brugt mit script præcist som den står, og den siger undefined, så må det da være en underlig browser du har.

Du kan vist finde det hele med en    alert(document.location);
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:32 #9
ja, jeg bruger IE :) så den er vel ikke underlig...

Men det gør ikke noget for det virker med innerHTML
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:37 #10
Kan du lige hjælpe med querystring i javascript ?
Avatar billede erikjacobsen Ekspert
12. april 2006 - 11:45 #11
document.location giver dig alt. Er det fordi du skal have pillet ext=noget ud af den?

Som at finde en levende dinosaur - tænk, er der stadig nogen der bruger IE. Ok, så er der ingen grund til at spilde tid på at finde ud af hvorfor den siger undefined.
Avatar billede gadebarnet Nybegynder
12. april 2006 - 11:47 #12
Nu er mine kunder 98% IE brugere, så sådan er det :)

Ja, jeg skal have ext1 og evt ext2 ud

men det er kun "måske" at ext2 eksistere...

kan du hjælpe med det ?
Avatar billede erikjacobsen Ekspert
12. april 2006 - 11:59 #13
Ha, ja, kunne det så ikke være sjovt at lave dine sider 100% efter standarderne, så det ikke virker i IE? Det ville da være humor for viderekomne ;)

Nå, jeg kan ikke teste det i IE, men her er igen en grovskitse med ext1

<html>
<head>

<script>
  var url=""+document.location;
  var ext1="";

  if (url.match(/\bext1=(\d+)/)) {
    ext1=RegExp.$1;
  }

  function testf() {
    var liste = document.getElementsByTagName("a");
    for (i=0;i<liste.length;i++) {
      if (liste[i].name==ext1 && i<liste.length-1) {
        alert(liste[i+1].text);
      }
    }
  }
</script>
</head>
<body>

<a name="1">
<a href="hest">hest</a>
<a name="2">
<a href="gris">gris</a>
<a name="3">
<a href="ko">ko</a>

<input type="button" value="test" onclick="testf()">
</body>
</html>
Avatar billede psykochicken Nybegynder
12. april 2006 - 13:11 #14
..og for at hjælpe de samspilsramte ie-brugere kunne du i stedet for
alert(liste[i+1].text);
bruge:
alert(liste[i+1].innerHTML);
eller:
alert(liste[i+1].firstChild.nodeValue);

;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