Avatar billede larsp Nybegynder
02. februar 2001 - 10:57 Der er 1 kommentar og
2 løsninger

Check på ID om et objekt eksisterer

Er det muligt i javascript at checke om et objekt med et bestemt id eksisterer?

Jeg har en eller flere tabeller med hver sit id, men da de er dynamisk genererede, vil jeg gerne kunne checke om de eksisterer, og derfra manipulere dem.

Lars
Avatar billede jumper Nybegynder
02. februar 2001 - 11:01 #1
Normalt ville du bruge document.all til dette (eller document.getElementById hvis det skal være DOM-kompatibelt) :

minID = \"IDPaaTabel\"
if (document.all[minID]){
  // Yeps, findes
}

eller

minID = \"IDPaaTabel\"
if (document.getElementById(minID)){ // DOM, kun til IE5+ og NS6+
  // Yeps, findes
}

Hvis du kun er ude efter IE-brugere, kan du udnytte at alle objekter med en ID kan refereres direkte. <div id=skod> kan refereres som skod.style.noget = \"tja\". Derfor kan vi bruge array notation på window objektet:

minID = \"IDPaaTabel\"
if (window[minID]){ // Kun til IE
  // Yeps, findes
}

/Thor
Avatar billede larsp Nybegynder
02. februar 2001 - 13:11 #2
Det virker, men nu kan jeg ikke få fat i tabellen.

Nedenstående virker på nær:
  IDobject.firstChild.children(0).nextSibling.style.display = \"none\";
 
for(i=1;i<n+1;i++) {
  minID = \"tblVendors\"+i;
  if (document.all[minID]){
    IDobject = document.getElementById(minID);
    IDobject.firstChild.children(0).nextSibling.style.display = \"none\";
  }
  i++;
}

Avatar billede olebole Juniormester
02. februar 2001 - 20:54 #3
<ole>
Tjahhhh...du kører dobbelt optælling. Slet \'i++;\' for neden - du tæller op i forvejen i for-løkken.
/mvh
</bole>
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