Avatar billede ss Nybegynder
16. september 2006 - 11:44 Der er 8 kommentarer og
1 løsning

Udskrive hvilket nummer tagget er.

Hej,
Jeg ved at man fx kan sige document.getElementsByTagName("div")[2], som så er et array der udskriver det div-tag der i dette tilfælde er nummer 3.

Men kan det gøres omvendt?:
Altså sådan at jeg har en lang liste med divs. Og når man så klikker på et af dem så bliver der fx alertet hvilket nummer diven er?

Eller på anden måde kunne skældne den enkelte div fra de andre?

På forhånd tak!

Ps. Skriv endelig hvis ikke i forstår mit spørgsmål :-)
Avatar billede Rosenkjaer Novice
16. september 2006 - 11:52 #1
Hvis du skal kunne kende forskel på alle dine div, kunne du jo bruge document.getElementsByID i stedet ?

og så smide id="div1" ind i den første div og id="div2" i den næste osv. ?

M.v.h. Xylene Free...
Avatar billede ss Nybegynder
16. september 2006 - 13:00 #2
Ja, men jeg har ingen mulighed for at definere id eller name for den sags skyld.
Avatar billede mclemens Nybegynder
16. september 2006 - 14:54 #3
<!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>Ingen titel</title>

<script type="text/javascript">

if(window.addEventListener)window.addEventListener("load", function(){wload();}, false);
else if(window.attachEvent)window.attachEvent("onload", function(){wload();});

function wload(){
  divs=document.getElementsByTagName("div");
  for(i=0,i2=divs.length;i<i2;i++){

    divs[i].setAttribute("rel","a"+i);
    divs[i].onclick=function(){rval(this);};

  }
}

function rval(t){
  alert("Du får fat i mig med:\ndocument.getElementsByTagName(\"div\")["+t.getAttribute("rel").substr(1)+"]");
}
</script>

</head><body>
<div>a5y365yu 0</div>
<div>jyhjkr67ij 1</div>
<div>hyebtu 2</div>
<div>hdetbuhe 3</div>
</body></html>




------------------------------------------------------------



<!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>Ingen titel</title>

<script type="text/javascript">

function findmig(t){
  divs=document.getElementsByTagName("div");
  for(i=0,i2=divs.length;i<i2;i++){
    if(t==divs[i]){
      alert("Du får fat i mig med:\ndocument.getElementsByTagName(\"div\")["+i+"]");
      i=i2.length;
    }
  }
}

</script>

</head><body>
<div onclick="findmig(this);">a5y365yu 0</div>
<div onclick="findmig(this);">jyhjkr67ij 1</div>
<div onclick="findmig(this);">hyebtu 2</div>
<div onclick="findmig(this);">hdetbuhe 3</div>
</body></html>
Avatar billede mclemens Nybegynder
16. september 2006 - 15:00 #4
Denne er nok bedre end den første i 14:54:57


<!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>Ingen titel</title>

<script type="text/javascript">

if(window.addEventListener)window.addEventListener("load", function(){wload();}, false);
else if(window.attachEvent)window.attachEvent("onload", function(){wload();});

function wload(){
  divs=document.getElementsByTagName("div");
  for(i=0,i2=divs.length;i<i2;i++){
    aevent(divs[i],i);
  }
}

function aevent(elm,j){
  if(elm.addEventListener)elm.addEventListener("click", function(){rval(j);}, false);
  else if(elm.attachEvent)elm.attachEvent("onclick", function(){rval(j);});
}

function rval(t){
  alert("Du får fat i mig med:\ndocument.getElementsByTagName(\"div\")["+t+"]");
}
</script>

</head><body>
<div>a5y365yu 0</div>
<div>jyhjkr67ij 1</div>
<div>hyebtu 2</div>
<div>hdetbuhe 3</div>
</body></html>
Avatar billede mclemens Nybegynder
16. september 2006 - 16:04 #5
Og et svar hvis det kan bruges ...
Avatar billede olebole Juniormester
20. september 2006 - 15:10 #6
<ole>

En lille ting: Når man ikke medsender argumenter, er det overflødigt at bruge en anonym funktion:

if(window.addEventListener)window.addEventListener("load", wload, false);
else if(window.attachEvent)window.attachEvent("onload", wload);
else window.onload = wload;  // Bør vel også tages med  =)

/mvh
</bole>
Avatar billede mclemens Nybegynder
20. september 2006 - 16:21 #7
Det har du helt ret i :o) inde i
function aevent(elm,j){ skal denne så
også med: (ud over Ole's andre rettelser :)

function aevent(elm,j){
  if(elm.addEventListener)elm.addEventListener("click", function(){rval(j);}, false);
  else if(elm.attachEvent)elm.attachEvent("onclick", function(){rval(j);});

  else elm.onclick=function(){rval(j);};
}
Avatar billede ss Nybegynder
24. september 2006 - 13:49 #8
Det virker! Tak mclemens
Avatar billede mclemens Nybegynder
24. september 2006 - 16:33 #9
Velbekom, og tak for point :)
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