ugrás a tartalomhoz

Javascript Hash nem működik DOM object key-el...

inf · 2008. Júl. 22. (K), 15.55
  1. <body onload="bla()">  
  2. <div id="container">  
  3. <div id="1">  
  4. </div>  
  5. <div id="2">  
  6. </div>  
  7. </div>  
  8. <script>  
  9. function bla()  
  10. {  
  11.     var c=document.getElementById("container");  
  12.     var items={}  
  13.     for (var i=0; i<c.childNodes.length; i++)  
  14.     {  
  15.         var item=c.childNodes[i];  
  16.         if (item.id)  
  17.         {  
  18.             items[item]=item;  
  19.         }  
  20.     }  
  21.     for (var item in items)  
  22.     {  
  23.         alert(item);  
  24.     }  
  25. }  
  26. </script>  
ezt szeretném megjátszani, a lényeg, hogy a dom object, amit kiválasztok, az saját magának legyen a kulcsa az items hash-ben (objectben).. na most ez alap javascript objecteknél (pl array) működni szokott, itt meg elég furcsa eredményt ad, csak egy item lesz a hash-ben, és az is egy olyan div, aminek se idje, se semmije..

valaki találkozott már ezzel a "hibával"? nem vagyok benne biztos, hogy ez hiba, mert ie és ff is ugyanúgy produkálja, lehet egyszerűen ezt a részt mindenki kihagyta a böngészőjéből.
 
1

Kulcs

Poetro · 2008. Júl. 22. (K), 19.34
JavaScript-ben a kulcsnak szövegnek (String) vagy számnak kell lennie. Amennyiben nem az, akkor történik egy .toString() hívás, és annak az eredménye lesz a kulcs.
2

Sure?

inf · 2008. Júl. 23. (Sze), 00.35
Ez biztos? Én eddig azt hittem, hogy valami memóriacímet, vagy ilyesmiket jegyez meg magának a cucc, de ezek után kipróbálom.
3

Teszteltem.

inf · 2008. Júl. 23. (Sze), 00.38
Teszteltem, és tényleg
  1. var a={}  
  2. var b=[0,1]  
  3. var c=[0,1]  
  4. a[b]="első"  
  5. a[c]="második"  
  6.   
  7. for (var i in a)  
  8. {  
  9.     alert(a[i]+"?"+i)  
  10. }  
köszi, ez már a második dolog, amiről kiderült, hogy elég komoly tévhit js-sel kapcsolatban nálam...