2010-07-15 57 views
1

我有jQuery代码像在FF此workig细,但在完全IE8失败:IE8无法显示动态添加图像

$('#tekst img').each(function(){ 
        var scrValue = $(this).attr('src').substring(0,4); 
        var imgTyp = $(this).attr('class').substring(1); 
        if(scrValue == 'tbid') 
        { 

         var splitedString = $(this).attr('src').split(':'); 
         var imageID = splitedString[1]; 
         $(this).append("<img src='ShowImage.ashx?ID=" + imageID + "' alt= '' />"); 

        }  
       }); 

在 'IF' 部分,IE之后离开第一(srcValue == TRUE)甚至无法显示第一张图片。

有没有人有任何想法?

+0

什么呢**失败**意味着什么?脚本错误? – jAndy 2010-07-15 08:51:04

+0

我得到了一个红十字而不是显示的图像..解决方案如下。 – Neno 2010-07-15 09:11:58

回答

2

似乎你是apeending是一个img元素中新的图像元素... 我不认为这是你inteneded做什么..

如果你想在你选择的图像之后添加img,你可以在jquery中使用after()函数。

,或者如果你想在img添加到您的图像容器,你可以这样做:

$("#tekst").append("<img src='ShowImage.ashx?ID=" + imageID + "' alt= '' />"); 

$(this).parent().append("<img src='ShowImage.ashx?ID=" + imageID + "' alt= '' />"); 

代替:

$(this).append("<img src='ShowImage.ashx?ID=" + imageID + "' alt= '' />"); 
+0

好极了,就是这样..简单而有效..现在IE也理解我的意图.. – Neno 2010-07-15 09:11:08

+1

是的问题是,即它是非常非常非常严格的DOM,在Chrome中,Firefox知道你的错误并为你修复它们,这个问题是你不知道它的错误,所以你不学习.. +1 – RobertPitt 2010-07-15 09:33:05

0

首先尝试警告图像元素的代码,看看它是正确的,如果是这样尝试做如下:

$("<img/>").attr('src','ShowImage.ashx?ID=' + imageID).attr('alt','').appendTo(this); 

可能是你创建的元素的方法。

您的添加元素内的空间杉实例属性边界alt= ''alt=''

+0

感谢您的回答,我只是为了避免img添加到img .. 为了确保IE正确显示图像,我只需要在$(this)之后添加parent().. – Neno 2010-07-15 09:14:25

+1

如果您希望检查jQuery有浏览器对象对于IR,比如'if($。browser.ie == true)'和'if($。browser.version> = 7.0)'等 – RobertPitt 2010-07-15 09:31:46