Toon posts:

[js] check of een gegenereerde var bestaat

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik begin maar meteen met wat javascript code:
code:
1
eenVar = 'plaatje';

Nu wil ik checken of er een variabele 'plaatje_on' bestaat. Ik dacht zoiets als:
code:
1
if( typeof eval(eenVar+"_on") != 'undefined') bla bla ...

maar dat werkt dus niet, want dan zegt ie: 'plaatje_on' is niet gedefinieerd
wie?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

In de search staat ook e.e.a., bijvoorbeeld:
[topic=217019/1/999]
[topic=216925/1/25]

etc.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:14

André

Analytics dude

Op dinsdag 16 juli 2002 13:55 schreef mentos het volgende:

if( typeof eval(eenVar+"_on") != 'undefined')
code:
1
2
3
4
if ( eval(eenVar+"_on") )  
{
  bla
}

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Erg basic Javascript. Maar ga niet beginnen met variabele variabele namen zeg maar. Gebruik dan een Array.

Checken of iets bestaat kun je simpelweg doen op deze manier:
code:
1
2
3
if ( varNaam ) {
   hij bestaat!
}

Werkt uiteraard niet bij booleans :)

Verwijderd

Topicstarter
code:
1
2
3
4
if ( eval(eenVar+"_on") )  
{
  bla
}
Heb je dat ook geprobeerd? ik krijg dan namelijk gewoon de melding 'plaatje_on' is niet gedefinieerd.

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:14

André

Analytics dude

Op dinsdag 16 juli 2002 14:06 schreef mentos het volgende:

[..]

Heb je dat ook geprobeerd? ik krijg dan namelijk gewoon de melding 'plaatje_on' is niet gedefinieerd.
Nee, was een snelle gok..., maar gelukkig gaf bosman de oplossing al.

Verwijderd

Topicstarter
Waarom zou ik niet beginnen met variabele variabelenamen bosmonster? Omdat jij niet weet hoe je dan kijkt of een var bestaat, of omdat het gewoon niet kan?
Ik geloof er niet in dat iets niet kan namelijk.. ;)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op dinsdag 16 juli 2002 14:10 schreef mentos het volgende:
Waarom zou ik niet beginnen met variabele variabelenamen bosmonster? Omdat jij niet weet hoe je dan kijkt of een var bestaat, of omdat het gewoon niet kan?
Ik geloof er niet in dat iets niet kan namelijk.. ;)
Omdat het lelijk en onoverzichtelijk proggen is en beter op andere manieren kan. De eval's zijn iets typisch script-achtigs wat je je beter niet aan kan leren. Bovendien zijn ze daar ook niet voor bedoeld.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:15

crisp

Devver

Pixelated

Algemeen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var x = 10;
var y;

showvar('x');
showvar('y');
showvar('z');

function showvar(theVar) {

  try {
    waarde = eval(theVar);
  }
  catch(error) {
    alert('variabele '+theVar+' bestaat niet');
    return;
  }
  if (waarde == undefined) alert('variabele '+theVar+' bestaat, maar heeft geen waarde');
  else alert('variabele '+theVar+' heeft de waarde: '+waarde);
  return;

}

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op dinsdag 16 juli 2002 14:13 schreef crisp het volgende:
Algemeen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
var x = 10;
var y;

showvar('x');
showvar('y');
showvar('z');

function showvar(theVar) {

[...]

}
Kijk, eindelijk eens rechtmatig gebruik van eval(uate) :) Je maakt mn dag weer goed. Alleen jammer dat de try/catch in JS niet werkt onder sommige oudere browsers/OS'en.

Verwijderd

Topicstarter
Op dinsdag 16 juli 2002 14:10 schreef Bosmonster het volgende:

[..]

Omdat het lelijk en onoverzichtelijk proggen is en beter op andere manieren kan. De eval's zijn iets typisch script-achtigs wat je je beter niet aan kan leren. Bovendien zijn ze daar ook niet voor bedoeld.
Ik vraag toch helemaal niet om wat jij er van vindt, ik wil graag antwoord op mijn vraag. En het interesseerd mij echt niet wat jij lelijk of onoverzichtelijk vindt, dat is trouwens ook erg afhankelijk van wat je er mee doet

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op dinsdag 16 juli 2002 14:15 schreef mentos het volgende:

[..]

Ik vraag toch helemaal niet om wat jij er van vindt, ik wil graag antwoord op mijn vraag. En het interesseerd mij echt niet wat jij lelijk of onoverzichtelijk vindt, dat is trouwens ook erg afhankelijk van wat je er mee doet
Je loopt tegen problemen aan omdat de eval() dus niet bedoeld is voor dit soort praktijken. Daarom werkt een simpele check al niet meer. Heeft niks te maken met mijn "vinden", simpelweg omdat ik je probeer te behoeden voor problemen waar je met zo'n programmeerstijl tegenaan gaat lopen.

En dat zie je maar weer.. anders had je deze topic niet eens nodig gehad ;)

Verwijderd

Topicstarter
Bedankt crisp, hier heb ik wat aan

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op dinsdag 16 juli 2002 14:18 schreef mentos het volgende:
Bedankt crisp, hier heb ik wat aan
Heerlijk die instelling van sommige mensen.. niks leren, kopieren.

Verwijderd

Topicstarter
Op dinsdag 16 juli 2002 14:20 schreef Bosmonster het volgende:

[..]

Heerlijk die instelling van sommige mensen.. niks leren, kopieren.
Hoe het met array's kan weet ik al lang, dus heb ik nu geleerd hoe het met eval te doen is. Vreselijk irritant trouwens die mensen die altijd het laatste woord willen hebben. (en ga nu niet zeggen dat ik nu weer het laatste iets heb gezegd)
Dit topic kan dicht wat mij betreft

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Ik snap helemaal niks van wat je nu probeert te zeggen. In al m'n posts ben ik behulpzaam. Op al mijn posts zit je me ongegeneerd af te zeiken...

Het is algemeen bekend (niet iets wat ik "vind") dat variabele variabele namen niet netjes zijn. Dit is zo in alle talen waarin het mogelijk is (eigenlijk alleen scripttalen, vandaar).

En het naschoppen met "hier heb ik wat aan", oftewel dat geouwehoer van Bosmonster heb ik niks aan, want hij geeft me geen lap code die ik kan kopieren, vind ik uitermate zielig van je.

Misschien moet je zelf ook eens wat meer gaan helpen, in plaats van al dat eenrichtingsverkeer. Je hebt alleen nog maar gereageerd in je eigen topics als ik in je geschiedenis kijk. Zo werkt het hier uberhaupt niet, dan kun je misschien beter ergens anders naar toe gaan. Dit forum is om te leren van elkaar, niet voor je kant en klare script-requests.

Maar in een ding heb je gelijk.. deze onzin kan dicht...
Pagina: 1

Dit topic is gesloten.