2010-12-14 4 views
1

Bien que la page de chargement dans mozilla, le code premier DIV n'est pas chargé essayé de charger html en utilisant l'intérieurBien que la page de chargement dans mozilla, le code premier DIV n'est pas chargé

<div id="mainContent"></div> 

avec ci-dessous appel

if (destinationURL != null) { 
$.get(destinationURL, function(data) 
{    
    $("#mainContent").attr("innerHTML",data); 
}); 
} 

destinationUrl fait référence ci-dessous html échantillon

<div id="A1"> 
<div id="B1"> 
    <div id="c1"> 
     <span>hi</span> 
    </div> 
    <div id="c2"></div> 
</div> 
    <div id="B2"> 
    <div id="D1"> 
     <span>hi2</span> 
    </div> 
    <div id="D2"></div> 
</div> 
<div id="B3"> 
    <div id="E1"></div> 
    <div id="E2"></div> 
</div> 
<div id="B4"> 
    <div id="F1"></div> 
    <div id="F2"></div> 
</div> 
</div> 

mais, lorsque les charges html

$("#c1") refers null object 

si je vois

$("#D1") contains html. 

si je donne un message d'alerte sur onLoad, je peux en mesure d'obtenir Html. Sa passe que dans mozilla

+0

Alors que vous avez eu quelques réponses, aucune d'elles n'explique réellement le problème - qui est que 'innerHTML' n'est pas un attribut HTML - http://www.w3.org/TR/html4/index/attributes. html - Internet Explorer a juste des problèmes pour faire la différence entre les attributs et les propriétés du DOM. – Quentin

+0

Mozilla, en tant que navigateur, est mort depuis de nombreuses années. Son successeur principal est Firefox et son moteur est Gecko. Il existe d'autres navigateurs au-delà de IE et de Firefox, et il vaut la peine de les tester aussi (surtout si vous avez un problème avec la différence entre IE et Firefox). – Quentin

Répondre

2
is this right express what you intended? 



    $("#mainContent").attr("innerHTML",data); 



=> I think this expression will give you the answer you want. 



    $("#mainContent").html(data); 
+0

.html() est un bon moyen de modifier le DOM, mais en utilisant javascript directement à la place de jquery serait une meilleure option ici – Tarun

0

Il est une bonne pratique de tenir à javascript au lieu d'aller dans les bibliothèques, sauf si nécessaire, le code javascript pour même serait

if (destinationURL != null) { 
$.get(destinationURL, function(data) 
{    
    document.getElementById("mainContent").innerHTML = data; 
}); 
} 

sur une autre note, je vous suggérons de construire d'abord une structure entière dans une chaîne, puis de l'insérer dans DOM. Modifier DOM encore et encore devrait être évité.

+0

au lieu de $ .get, j'ai utilisé $ .ajax et async fait faux. maintenant ça marche ... je pense, async faux affectera la performance. J'ai essayé d'utiliser javascript normal comme vous l'avez dit plus tôt ... même si cela fonctionne. –

Questions connexes