2010-07-15 8 views
1

j'ai le code jQuery comme ceci bien workig dans FF, mais échoue totalement dans IE8:IE8 ne parvient pas à afficher ajouté dynamiquement l'image

$('#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= '' />"); 

        }  
       }); 

In 'IF' une partie, IE sort après la première (srcValue == true) et ne parvient même pas à afficher cette première image ..

Quelqu'un a-t-il des idées?

+0

ce qui fait ** échoue ** signifie en particulier? Erreurs de script? – jAndy

+0

J'ai juste une croix rouge au lieu de l'image affichée. La solution est ci-dessous. – Neno

Répondre

2

il semble que vous apeending ce nouvel élément d'image dans un élément img ... je ne pense pas que c'est ce que vous inteneded à faire ..

Si vous souhaitez ajouter img après l'image que vous venez de sélectionner, vous pouvez utiliser la fonction after() dans jquery.

ou si vous souhaitez ajouter img à votre conteneur images que vous pouvez faire quelque chose comme:

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

ou

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

au lieu de:

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

Super, c'est tout simple et efficace .. Maintenant IE comprend aussi mon intentions .. – Neno

+1

oui le problème est avec c'est à dire c'est très très DOM Strict, où comme Chrome, Firefox connaît vos erreurs et les corrige pour vous, le problème avec ceci est que vous ne connaissez pas son erreur, donc vous n'apprendrez pas .. +1 – RobertPitt

0

essayer d'abord alerter le code d'élément d'image pour voir si son correct, si alors essayez de faire ce qui suit:

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

est peut-être la façon dont votre création de l'élément.

exemple sapin votre ajout d'un espace dans l'élément d'attribut limites alt= ''-alt=''

+0

Merci pour la réponse, je devais juste éviter img ajouter à img .. Pour s'assurer que IE affiche des images correctement, je juste besoin d'ajouter parent() après $ (this) .. – Neno

+1

jQuery a un objet navigateur si vous souhaitez vérifier pour IR, comme 'if ($. browser.ie == true)' et 'if ($. browser.version> = 7.0)' etc – RobertPitt

Questions connexes