Avatar billede 3xm Nybegynder
02. marts 2004 - 19:20 Der er 32 kommentarer og
1 løsning

billede - document.images[x]

nu har jeg brugt timer på at vælte rundt på nettet efter en løsning på det her. men nu har jeg overgivet mig, og spørger her i stedet:

alle billeder på en side har et index x - document.images[x] - hvor x er det nr. billede det er på siden.

er det på nogen måde muligt at hive dette nummer ud af et specifikt billede til brug andetsteds?

fx. noget ala

window.status = 'index: ' + document.images.this;

ved en onclick på et <img>-tag.


giver spørgsmålet overhovedet mening?

=)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 19:38 #1
Prøv denne lille funktion:
function findIndex(bld) {
      var i=0;
      while (document.images[i]) {
          if (document.images[i]==bld) {return i;}
          else i++;
      }
}

<img src="bld1.png" onclick="alert(findIndex(this))" /><img src="bld2.png" onclick="alert(findIndex(this))" />
Avatar billede 3xm Nybegynder
02. marts 2004 - 19:42 #2
> document.images[i]==bld

hmm... variablen bld?
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:57 #3
function findIndex(bld) {  <---- "bld" (står sikker for billede: BiLleDe)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 21:01 #4
ja, og den referer til det billede du trykker på (pga findIndex(this) hvor this jo er billedet hvorfra du kalder funktionen).
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:11 #5
ohh... det kunne være jeg skulle åbne øjnene og støve hjernen af. undskyld. jeg afprøver det lige.

=)
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:28 #6
virker den hos nogen af jer?

min går bare i uendelig lykke så jeg til sidst er nødt til at kværke browseren.

this er jo heller ikke et tal men et DOM HTMLImageElement.

=)
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:32 #7
Prøv:

<script type="text/JavaScript">
function findIndex(bld)
{

for (i=0; i<document.images.length;i++) {
  if (document.images[i] == bld) {return i}
}

}
</script>
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:36 #8
god ide.

men det løser stadigt ikke problemet med at this ikke er et tal men en HTMLImageElement
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:38 #9
hmm... sådan?:

<img src="billede1.jpg" onclick="window.status = 'index: ' + findIndex(this);" />
<img src="billede2.jpg" onclick="window.status = 'index: ' + findIndex(this);" />
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:44 #10
funktionen returnerer jo netop et tal - this er bare "inputtet", altså det billede som du vil finde index for.
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:45 #11
det lyder som om at du har fat i noget af det rigtige. men jeg kan ikke få det til at virke. kan du selv det?

=)
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:45 #12
3xm> du vil gerne have den til at skrive "index: 1" (f.eks.).. det gør du sådan her:

<img src="billede1.jpg" onclick="window.status = 'index: ' + findIndex(this);" />
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:48 #13
skovenborg. igen sover jeg. men det ændrer ikke på at funktionen stadigt ikke virker.

surfer: virker det hos dig?
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:49 #14
3xm> Jo, det virker :)
Her er koden jeg bruger:

<script type="text/JavaScript">
function findIndex(bld)
{

for (i=0; i<document.images.length;i++) {
  if (document.images[i] == bld) {return i}
}

}
</script>

<img src="billede1.jpg" onclick="window.status = 'index: ' + findIndex(this);" /><img src="billede2.jpg" onclick="window.status = 'index: ' + findIndex(this);" />
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:49 #15
min javascript console siger at findIndex ikke er defineret. er du sikker på at det er en funktion der findes?
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:50 #16
godt så... tillad mig at undskylde for alt mit soveri. nu tager jeg mig lige sammen og kigger det hele igennem.

=)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:50 #17
jeg testede også den første jeg lavede i både Opera, Mozilla og IE (de nyeste versioner) - så det burde virke ;-)
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:51 #18
ikke definere? det er jo en funktion! :)
Smid lige hele din kode herind.. der er noget galt..

skovenborg> skulle din kode ikke være?:
function findIndex(bld)
{

var i=0;
while (document.images[i]) {
  if (document.images[i]==bld) {
    return i;
  } else {
    i++;
  }
}

}
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:53 #19
man behøver sådan set ikke {}-tegnene hvis man kun skal skrive en enkelt linie efter if eller else.
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:53 #20
...men det kan være du synes det er pænere ;-)
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:53 #21
weeeee!

så virker det.

mange tak skal i have, begge to. hvis i vil have point, så smid et svar. så kaster jeg 62 efter jer begge.

=)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:54 #22
okay - værsågod :-)

hvad var der egentlig galt før ?-)
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:54 #23
OK :)

Ja, jeg synes at det er pænere.. og jeg har programmerer i VB osv :)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:54 #24
hov jeg er godt nok ikke god til at ramme svarknappen ;-)
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:55 #25
du har ret i det med {}. personligt bruger jeg dem helst fordi jeg som regel glemmer at sætte dem senere hvis jeg tilføjer flere linier til if'en. så for en ren og skær sikkerhedsmæssig skyld.

=)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:55 #26
thesurfer >> Du kan have ret i det er pænere - det er sådan set en gammel vane jeg ikke skriver {} medmindre det er nødvendigt ;-)
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:56 #27
der var det galt at jeg troede findIndex var en indbygget funktion. min hedder billede, og efter en tv-avis havde jeg glemt alt om hvad i kaldte jeres.

=)
Avatar billede skovenborg Nybegynder
02. marts 2004 - 22:58 #28
nåå, ja det kan jo forvirre ;-)
Avatar billede 3xm Nybegynder
02. marts 2004 - 22:58 #29
surfer, jeg opretter lige et spørgsmål til dine point...
Avatar billede thesurfer Nybegynder
02. marts 2004 - 22:59 #30
hmm.. du kunne jo give points til beggge 2, ved at holde CTRL nede og klikke på begge vores navne :)
Avatar billede 3xm Nybegynder
02. marts 2004 - 23:00 #31
Avatar billede skovenborg Nybegynder
02. marts 2004 - 23:00 #32
du kunne da også bare have delt dem lige over --- jeg kan godt oprette et i stedet hvis du vil...
Avatar billede 3xm Nybegynder
02. marts 2004 - 23:00 #33
jamen så deler den de 62 mellem jer. i skal have 62 hver.
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