代码如下:
问题在注释的地方
一个是用id取的 一个是把元素直接存在数组中的  (确实是指向的同一元素,都alert('ss')了)
同时用他们取元素的src的时候没问题
但是用最终样式取width的时候就出问题了
各位大虾子指教下<style type="text/css">
<!--
.ss1{
border:1px solid #000000;
width:200px;
}
.ss2{
border:10px solid #000000;
width:200px;
}
-->
</style><body>
<script>
function $(Id){return document.getElementById(Id)}
var CurrentStyle = function(element){return element.currentStyle || document.defaultView.getComputedStyle(element, null);};
function create(elm,parent,fn){var element = document.createElement(elm);parent.appendChild(element);if(fn)fn(element);};
var arr = [{elm:null,className:'ss1',id:'ss',src:'http://comic.qq.com/images/comic/2005/10/31/yh/s/42.jpg'},{elm:null,className:'ss2',src:'http://comic.qq.com/images/comic/2005/10/31/yh/s/25.jpg'}];
for(var i=0;i<arr.length;i++)
{
 create('img',document.body,function(elm){
 elm.className = arr[i].className;
 arr[i].elm    = elm;
 arr[i].id&&(elm.id = arr[i].id);
 elm.src       = arr[i].src;
 })
}
alert(arr[0].src)                           //正确
alert($(arr[0].id).src)                     //正确
if(arr[0].src==$(arr[0].id).src)alert('ss') //正确
alert(CurrentStyle($(arr[0].id)).width)    //正确
alert(CurrentStyle(arr[0]).width)          //错误
</script>
</body>

解决方案 »

  1.   

    失误
    上面的
    if(arr[0].src==$(arr[0].id).src)alert('ss')  ==========>改成  if(arr[0]==$(arr[0].id))alert('ss')
    然后 就没有alert出ss  
    奇怪难道真的不是同一元素
    不是同意元素 为什么src又是相同的了?????????
      

  2.   

    arr[0]==$(arr[0].id)
    2个不同的对象怎么可能会相等?
      

  3.   

    那为什么他们的src会相等了??????
      

  4.   

    晕死,虽然他们是属于不同的对象,但他们的指向同一个SRC啊
      

  5.   

    给你提示:你发现你的arr[0]指的是什么没?是不是var arr=而$(arr[0].id)指的是什么呢?是不是function $(Id){return document.getElementById(Id)}?而再来看,你说他的src相同的分析
    在var arr = [{elm:null,className:'ss1',id:'ss',src:'http://comic.qq.com/images/comic/2005/10/31/yh/s/42.jpg'},{elm:null,className:'ss2',src:'http://comic.qq.com/images/comic/2005/10/31/yh/s/25.jpg'}];
    中arr[0]指的是哪部分?是不是{elm:null,className:'ss1',id:'ss',src:'http://comic.qq.com/images/comic/2005/10/31/yh/s/42.jpg'}
    那src是不是属于arr[0]的属性?然而你function create(elm,parent,fn){var element = document.createElement(elm);parent.appendChild(element);if(fn)fn(element);};
    通过这个创建以后是不是变成了HTML标签?
    那标签中id为ss的src是与arr[0]中的值是一样的?