我的页面有若干个img元素,当页面加载的时候,我获取到所有img元素,然后获取其src...结果发现src明明为空,但img.src的结果是当前网址. 为什么呢? 网上搜不到~~
<!--HTML关键代码-->
<img onerror="alert('error');" class="thumb_img" src="">
//js代码
var thumb = document.getElementsByClassName('thumb_img')[0];
alert(thumb.src); //结果不是 "" 而是当前网页地址,为什么
因为img的src属性总是规范成绝对地址的,比如
<img src="/images/1.jpg" />
然后实际上你alert的时候,这个img的src会被规范成 http://www.yoursite.com/images/1.jpg。所以你这里设置了一个空地址,就会被规范成你当前页面的地址了(因为浏览器认为这个src=""是一个相对地址)
很有道理~~,那么请问我如何更好的判断这一img的src是否为""呢? 获取页面地址和它比较吗?
@coder_wang: 这么做理论上是可以的,因为你页面的地址不会同时刚好也是一个img的地址,所以不可能有img的src是你页面的地址的,如果有,说明img的src没有设置导致的。
上代码吧
好吧,如此简单的提问还需代码...
http://www.blabla.cn/html_kb/html_kb_img_src_empty_reload.html
在img 对象的src 属性是空字符串("")的时候,浏览器认为这是一个缺省值,值的内容为当前网页的路径
顶·············
obj.getAttribute("src") 即可获得空值... 哎.JQ惯的