Toon posts:

[JS] Or statements die niet werken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben en blijf denk ik een noob met javascript maar ik snap er nu helemaal niks meer van.


code:
1
2
3
4
5
if((element.name != 'outro')||(element.name != 'woon_voiceovertekst'))
     {
           var error = element.name+ ',';
           error2 = error + error2;
           }



Dit werkt niet , en op OR zoeken met google is ook niet echt iets wat werkt. En wat ik zie moet dit gewoon werken, doe ik iets fout of zie ik iets over het hoofd.

Het is dus de bedoeling dat als element.name outro is of dat het woon_voiveovertekst is dat het niet in de error log word opgenomen.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 19-05 18:05
Wat bevat element.name? Alert die eens.

Verwijderd

wat doet hij nu wel en wat niet? is element niet toevallig een reserved word? wat gebeurt er als je verschillende situaties wat zaken laat alerten?

Verwijderd

Ik ken geen Java, maar als ik het goed zie, vraag je:
als object1 ne constante1 of object2 ne constante2 doe iets

Dat zou dan moeten zijn:
als niet (object1 = constante1 of object2 = constante2) doe iets.

In het eerste voorbeeld moeten BEIDE vergelikingen voldoen als je iets NIET wilt doen.

Verwijderd

je moet je vergelijking omdraaien. wanneer nu geldt dat de naam wel outro is, wordt alsnog voldaan aan de voorwaarde dan de naam niet woon_voiceovertekst is. de vergelijking valideert dus sowieso

Verwijderd

Topicstarter
die alert(element.name); geeft netjes een value, maar ik ben niewusgierig hoe die statement dan precies moet in javascript.

Het moet gewoon zijn als element.name een van die is doe het niet en anders doe het wel.

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19-05 13:57

Dido

heforshe

Ik denk dat ie perfect werkt.

(De auto is NIET groen) of (De Auto is NIET blauw) is altijd waar.

Ik weet niet wat je wilt dat je statement doet, maar waarschijnlijk doet ie nu precies wat je hebt opgeschreven. (En dat is identiek aan IF 1==1)

edit: wat jij wilt is dus AND gebruiken in plaats van OR: de auto mag niet rood zijn en niet blauw.

Een veelgemaakte fout in de logica: "de auto mag niet (rood of blauw) zijn" is niet hetzelfde als "(De auto mag niet blauw zijn) of (De auto mag niet rood zijn)" maar wel juit is "(De auto mag niet blauw zijn) EN (De auto mag niet rood zijn)"

[ Voor 42% gewijzigd door Dido op 02-12-2004 11:39 ]

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Dit is het antwoord :)

bedankt
code:
1
     if(!(element.name == 'bumper' || element.name == 'outro' || element.name == 'woon_voiceovertekst'))


Dit werkt

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19-05 13:57

Dido

heforshe

Dat is ook een methode, ja. Niet echt fraai, en het geeft niet aan dat je begrijpt wat je fout deed :P

Maar smaken verschillen :P

[ Voor 18% gewijzigd door Dido op 02-12-2004 11:41 ]

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Ik begreep wat ik fout deed, ik checkte iets waar altijd true uit kwam. Maar wat is volgens jouw dan de fraaie oplossng ?

Verwijderd

misschien dat Dido dit bedoelt:
code:
1
if(element.name != 'bumper' && element.name != 'outro' && element.name != 'woon_voiceovertekst')

maar hierbij worden moeten wel elke keer alle vergelijkingen worden uitgevoerd, terwijl bij
code:
1
if(!(element.name == 'bumper' || element.name == 'outro' || element.name == 'woon_voiceovertekst'))

(zoals jij het nu had) de vergelijking al kan worden afgebroken zodra 1 voorwaarde valideert
Pagina: 1