2010-07-15 4 views
1

У меня есть JQuery код, как этот workig штрафа в FF, но полностью проваливается в 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 == верно) и даже не отображает это первое изображение.

У кого-нибудь есть идеи?

+0

, что делает ** fail ** означает, в частности,? Ошибки скрипта? – jAndy

+0

У меня есть только красный крест вместо отображаемого изображения. Решение ниже. – Neno

ответ

2

кажется, что вы apeending, что новый элемент изображения внутри элемента IMG ... я не думаю, что это то, что вы inteneded сделать ..

Если вы хотите добавить, что img после выбранного вами изображения вы можете использовать функцию after() в jquery.

или если вы хотите, чтобы добавить 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

+1

Да, проблема в том, что это то, что его очень DOM Strict, где, как Chrome, Firefox знает ваши ошибки и исправляет их для вас, проблема заключается в том, что вы не знаете, что это ошибка, поэтому вы не учитесь .. +1 – RobertPitt

0

Во-первых, попытаться предупредить код элемента изображения, чтобы увидеть, если его правильно, если так попробовать сделать следующее:

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

Может быть так, как ваш создания элемента.

пихты экземпляра вашего добавление пространства внутри элемента атрибут границы alt= '' к alt=''

+0

Спасибо за ответ, мне нужно было просто избежать img, добавив в img .. Чтобы убедиться, что IE отображает изображения правильно, мне просто нужно было добавить parent() после $ (this) .. – Neno

+1

jQuery имеет объект браузера, если вы хотите проверить для IR, например 'if ($. browser.ie == true)' и 'if ($. browser.version> = 7.0)' и т. д. – RobertPitt

Смежные вопросы