Avatar billede mikmakmuk Nybegynder
16. juli 2008 - 11:20 Der er 13 kommentarer og
1 løsning

Ajax problem

Jeg har en ifsætning som ser således ud.

if(xmlDoc.getElementsByTagName("bla")[0].childNodes[0].nodeValue!="" && xmlDoc.getElementsByTagName("bla1")[0].childNodes[0].nodeValue!="" && xmlDoc.getElementsByTagName("bla3")[0].childNodes[0].nodeValue=="T"){}

Det virker også fint lige indtil bla eller bla1 er tomme. Så får jeg en fejl som siger:

xmlDoc.getElementsByTagName("bla")[0].childNodes[0] has no properties. Hvordan kommer jeg ud over det?
Avatar billede mikmakmuk Nybegynder
16. juli 2008 - 11:22 #1
med tomme mener jeg at xml'en ser således ud

<bla></bla><bla1></bla1>
Avatar billede w13 Novice
16. juli 2008 - 11:35 #2
Måske:

function childNodeValue(o){
  if(o.hasChildNodes())return o.firstChild.nodeValue;
  else return "";
}

if(childNodeValue(xmlDoc.getElementsByTagName("bla")[0])!="" && childNodeValue(xmlDoc.getElementsByTagName("bla1")[0])!="" && childNodeValue(xmlDoc.getElementsByTagName("bla3")[0])=="T"){

}
Avatar billede w13 Novice
16. juli 2008 - 11:40 #3
Fejlen opstår, når du bruger nodeValue på childNodes[0], som ikke findes.
Avatar billede w13 Novice
16. juli 2008 - 11:40 #4
Hvis min kode ikke lige virker, kan du bruge:

function childNodeValue(o){
  if(o.firstChild)return o.firstChild.nodeValue;
  else return "";
}

if(childNodeValue(xmlDoc.getElementsByTagName("bla")[0])!="" && childNodeValue(xmlDoc.getElementsByTagName("bla1")[0])!="" && childNodeValue(xmlDoc.getElementsByTagName("bla3")[0])=="T"){

}
Avatar billede mikmakmuk Nybegynder
16. juli 2008 - 12:27 #5
Super cool. 1000 tak
Avatar billede w13 Novice
16. juli 2008 - 12:32 #6
;)
Avatar billede mikmakmuk Nybegynder
16. juli 2008 - 15:54 #7
Det virker ikke i Firefox, nu var jeg ellers lige så glad
Avatar billede olebole Juniormester
16. juli 2008 - 19:36 #8
<ole>

Hvad sker der - og hvad sker der ikke - og får du fejl i fejlkonsolen?

/mvh
</bole>
Avatar billede mikmakmuk Nybegynder
17. juli 2008 - 01:25 #9
Jeg får xmlDoc.getElementsByTagName("bla")[0].childNodes[0] has no properties, men som sagt kun i firefox
Avatar billede w13 Novice
17. juli 2008 - 08:51 #10
Det står der jo ingen steder i min kode?
Avatar billede mikmakmuk Nybegynder
22. juli 2008 - 13:06 #11
Kan jeg ikke skrive 

childNodeValue(xmlDoc.getElementsByTagName("blablabla")[0])=="T"
Avatar billede w13 Novice
22. juli 2008 - 13:55 #12
Jo, det burde du kunne.
Avatar billede mikmakmuk Nybegynder
22. juli 2008 - 13:58 #13
Jeg får denne fejl

o has no properties
Avatar billede w13 Novice
22. juli 2008 - 14:10 #14
Hmm. Prøv at rette:

function childNodeValue(o){
  if(o.hasChildNodes())return o.firstChild.nodeValue;
  else return "";
}

til:

function childNodeValue(o){
  if(!o)return false;
  else if(!o.hasChildNodes())return false;
  return o.firstChild.nodeValue;
}
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