ugrás a tartalomhoz

JS getElementById() nem létező ID esetén

nobzol · 2007. Dec. 28. (P), 18.44
Hello!
A következő lenne a problémám:
Van egy js fájlom (a.js), ezt minden egyes html oldalamon meghívom (<script src=...).
Namost, ebben a js fájlban azt csinálom, hogy bizonyos ID-jű td celláknak értéket adok .innerHTML-el. Csakhogy ezek az ID-k nem mindegyik HTML oldalon szerepelnek, és egy HTML oldalon nem ez összes ID szerepel. És ahogy betöltődik az oldal és akár egy ID is hiányzik az oldalról, akkor megáll a js futása. Gondolom az lehet, hogy mivel nem létezik az adott oldalon az adott ID, ezért azt hiszi, hogy akkor vége van vminek.
Tehát akkor a kérdés: hogyan lehet azt megoldani, hogy nem létező ID esetén is tovább fusson a script?

a.js:
  1. document.getElementById('m01').innerHTML = 'egy';  
  2. document.getElementById('m02').innerHTML = 'ketto';  
  3. document.getElementById('m03').innerHTML = 'harom';  
  4. //stb...  
b.html
  1. <table><tr>  
  2.  <td>cím</td>  
  3.  <td id="m01"></td>  
  4.  <td>valami</td>  
  5.  <td id="m03"></td>  
  6. </tr></table>  
Ilyenkor azt csinálja, hogy az "m01" ID-jű cellába beírja az "egy"-et, de mivel nincs "m02" ID, ezért az "m03"-as ID-jű cellába már nem ír semmit.
Előre is kösz a segítséget, Zoli.
 
1

kösd feltételhez

gex · 2007. Dec. 28. (P), 18.58
if (document.getElementById('m01')) {
    document.getElementById('m01').innerHTML = 'egy';
}
2

kezeld a kivételeket

zila · 2007. Dec. 28. (P), 19.54
  1. try {  
  2.      document.getElementById('m01').innerHTML = 'egy';  
  3. catch(e) {}  
3

Kösz!!

nobzol · 2007. Dec. 28. (P), 22.07
Nagyon köszönöm a segítségeket, működik a dolog!
Üdv, Zoli.