2010-10-18 5 views
0

J'ai un problème avec le navigateur Internet Explorer lors de la lecture du contenu de l'élément DIV en utilisant la méthode jQuery('DIVID').html(). J'insère une chaîne XML simple à l'élément DIV. Mais lorsque j'essaie de lire le contenu en utilisant jQuery, certaines données sont manquantes. Cela fonctionne très bien dans Firefox.Problèmes avec IE avec la méthode html() en utilisant jQuery

Mon code est illustré ci-dessous.

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
</head> 
<body> 
    <p><div id="AJAXTESTDATA"></div>jQuery Simple Test.</p> 
<script> 
     var testAjax = document.getElementById("AJAXTESTDATA"); 
    var tes = '<SPAN id="tt"><DATA1><DATA2><DATA3><SPAN id="doc">TEST</SPAN></DATA3></DATA2></DATA1></SPAN>'; 
    alert("Actual Data:"+tes); 
    testAjax.innerHTML = tes; 
    var cbkData = jQuery('#AJAXTESTDATA').html(); 
    alert("Data after inserting to DIV:"+cbkData); 
</script> 
</body> 
</html> 

Edit: Le second message d'alerte affiche le contenu de la balise DIV comme ci-dessous: données après l'insertion à DIV: <SPAN id=test><SPAN id=doccase>TEST</SPAN></DATA3></DATA2></DATA1></SPAN> Ainsi, vous pouvez voir que la plupart des balises de début sont manquantes! Donc, quels que soient les noms de balises que j'utilise, la même chose est le résultat dans IE.

Quelqu'un pourrait-il me dire la raison derrière la troncature des données lors de la lecture via IE?

Cordialement, Krishna.

Répondre

0

Quelqu'un pourrait-il me dire la raison derrière la troncature des données lors de la lecture via IE?

Il n'y a pas de balise c en HTML 4. Je suppose que IE supprime les balises invalides d'une manière plus stricte que les autres navigateurs.

Si vous cherchez à insérer le XML comme texte données (avec toutes les balises visibles), utilisez .text() au lieu de .html().

+0

tag C était un exemple que je l'avais utilisé. J'avais mis à jour la question originale avec différents noms de balise, toujours le même problème dans IE. – user479252

+0

@utilisateur 'DATA3' etc. ne sont pas non plus des balises HTML valides. –

0

Je suis d'accord avec @Pekka IE probablement supprimer les balises invalides. Vous pouvez ajouter &gt; au lieu de > et &lt; au lieu de <

+0

Je suppose que vous vouliez dire utiliser & lt avec un point-virgule et un & gt avec un point-virgule. ? – user479252

+0

Oui, n'est-ce pas ce que j'ai écrit? – Diego

0

Je suis d'accord avec Pekka: si vous utilisez le .text() au lieu de .html() alors vos balises ne seront pas dépouillé, mais je pense que vous aurez besoin d'utiliser .text() pour définir la valeur au lieu de .innerHTML. Pourvu que vous n'ayez pas réellement prévu d'afficher les données XML (qui ne s'afficheraient pas de manière sensée de toute façon) et que la div AJAXTESTDATA est réellement cachée, cela fonctionnera.

exemple jsFiddle here