日期:2014-05-16  浏览次数:20349 次

javascript的奇怪问题~~请各位都看一下...好急~~
首先..我先说明一下我的情况吧~
比如~在页面有这些东西..
<body>
<div   id= "item "> a </div>        
<div   id= "item "> b </div>
<div   id= "item "> c </div>
</body>
(a,b,c代表一些table   html,简略了)
<javascript>

(这样可以得到一个array吧!)
var   list   =   document.all[ "item "];          

(改变Layout,进行调换位置)
var   temp;
temp   =   list[0].outerHTML;
list[0].outerHTML   =   list[1].outerHTML;
list[1].outerHTML   =   temp;
</javascript>

交换位置之后~在其他function会发现...
list[0].outerHTML只有   <div   id= "item "> </div>   没有b了...
又或者..
var   obj   =   list[0].document.getElementById(a.id);
对这个obj进行一些属性更改..比如是某row的color~`但.....竟然是list[1]有变化...而不是list[0]~~~

请问各位有没有遇到这些情况..??要如何解决..
大家不要建议我用坐标来控制Layout..因为每个div的大小都不一样..处理起来很麻烦~~看看大家还有没有其他更好的方法~~谢谢~~~~~~`

------解决方案--------------------
这样是会出问题的,我也碰到过,你要么这样试试看:
var temp0,temp1;
temp0 = list[0].outerHTML;
timp1 = list[1].outerHTML;
list[0].outerHTML = temp1;
list[1].outerHTML = temp0;
------解决方案--------------------
1.ID必须唯一? ID可以不唯一 多个相同ID将被认为是个数组!
2.getElementsByName()方法可以取得 ID 和 Name 不是只能取得Name属性
3.settimeout 是个多线程处理方法 当使用一个settimeout相当于打开的一个新的线程 当多个线程处理同一个变量的时候 你就要小心了