2010-03-12 5 views
2

je le code html suivant:Pourquoi la méthode jQuery .html() ne fonctionne-t-elle pas avec des balises personnalisées dans IE8?

<mytag> 
     Just Some Text 
</mytag> 

Et je cette commande jQuery

$('mytag').each(function() { alert($(this).html()); }); 

Dans tous les navigateurs sauf IE que je reçois le code HTML intérieur, dans IE, je ne suis pas. Quelqu'un peut-il faire la lumière sur ce mystère? Je l'ai testé cela avec IE8, Mozilla, Opera, Chrome et Safari

+2

vous demandez le innerHTML de quelque chose qui est pas HTML. –

Répondre

6

Parce que Internet Explorer ne erreur correcte pour ce type particulier de invalide HTML de la même manière que les autres navigateurs ont testé la code avec do.

Je suppose que vous pouvez pirater autour d'elle (cela fonctionne pour appliquer CSS) avec:

document.createElement('mytag') 

... mais vous seriez mieux écrire HTML (ou l'écriture XML et de servir comme application/xml) .

+0

Malheureusement, je n'ai pas seulement besoin d'appliquer CSS à cette balise. J'ai besoin d'extraire son innerHTML et de le manipuler et j'ai besoin d'utiliser un customtag. –

+3

+1 Les "balises personnalisées" ne sont pas du HTML et vous ne pouvez raisonnablement pas vous attendre à ce qu'elles se comportent d'une manière particulière dans les navigateurs. – bobince

+1

vous réécrire les balises personnalisées comme ''. De cette façon, vous pouvez les rechercher et ils n'influencent pas la mise en page. –

1

Pour IE, vous devez mettre dans votre tag ->xmlns='mytag'

<mytag xmlns='mytag'> 
    Just Some Text 
</mytag> 

maintenant IE et tous les autres navigateurs peuvent « voir » votre balise

Questions connexes